http-request-manager 18.4.9 → 18.5.1
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 +49 -50
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-18.5.1.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,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { WithCredentialsInterceptor, RequestHeadersInterceptor } from './interceptors';
|
|
4
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
-
import { CommonModule } from '@angular/common';
|
|
6
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
8
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
9
|
-
import { MatChipsModule } from '@angular/material/chips';
|
|
10
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
11
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
12
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import { MatInputModule } from '@angular/material/input';
|
|
14
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
15
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
16
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
17
|
-
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
18
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
19
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
20
|
-
import { MatTableModule } from '@angular/material/table';
|
|
21
|
-
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
22
|
-
import { ProxyDebuggerInterceptor } from './interceptors/proxy-debugger.interceptor';
|
|
23
|
-
import { ConfigOptions } from './models';
|
|
24
|
-
import { CONFIG_SETTINGS_TOKEN } from './models/config-token.model';
|
|
25
|
-
import { HTTPManagerService, LocalStorageManagerService } from './services';
|
|
26
|
-
import { FileDownloaderModule } from './http-request-services-demo/request-manager-demo/file-downloader/file-download.module';
|
|
27
|
-
import { ToastMessageDisplayModule } from 'toast-message-display';
|
|
28
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
29
|
-
import { DatabaseDataDemoComponent, HttpRequestServicesDemoComponent, LocalStorageDemoComponent, RequestManagerDemoComponent, RequestManagerStateDemoComponent } from '../public-api';
|
|
30
|
-
import { LocalStorageSignalsDemoComponent } from './http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component';
|
|
31
|
-
import { RequestManagerWsDemoComponent } from './http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component';
|
|
32
|
-
import { RequestSignalsManagerDemoComponent } from './http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component';
|
|
33
|
-
import { StoreStateManagerDemoComponent } from './http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component';
|
|
34
|
-
import { WsDataControlComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component';
|
|
35
|
-
import { WsMessagingComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component';
|
|
36
|
-
import { WsNotificationsComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component';
|
|
37
|
-
import { WsAiMessagingComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component';
|
|
38
|
-
import * as i0 from "@angular/core";
|
|
39
|
-
import * as i1 from "@ngx-translate/core";
|
|
40
|
-
// import { MessengerChatModule } from 'src/app/components/messenger-chat/messenger-chat.module';
|
|
41
|
-
// import { StoreStateManagerModule } from "src/app/beta_components/store-state-manager/store-state-manager.module";
|
|
42
|
-
export class HttpRequestManagerModule {
|
|
43
|
-
static forRoot(config = ConfigOptions.adapt()) {
|
|
44
|
-
return {
|
|
45
|
-
ngModule: HttpRequestManagerModule,
|
|
46
|
-
providers: [
|
|
47
|
-
{ provide: CONFIG_SETTINGS_TOKEN, useValue: ConfigOptions.adapt(config) },
|
|
48
|
-
HTTPManagerService, LocalStorageManagerService //all services that need access to config
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
53
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestManagerModule, declarations: [HttpRequestServicesDemoComponent,
|
|
54
|
-
RequestManagerStateDemoComponent,
|
|
55
|
-
RequestManagerDemoComponent,
|
|
56
|
-
RequestSignalsManagerDemoComponent,
|
|
57
|
-
LocalStorageDemoComponent,
|
|
58
|
-
LocalStorageSignalsDemoComponent,
|
|
59
|
-
RequestManagerWsDemoComponent,
|
|
60
|
-
StoreStateManagerDemoComponent,
|
|
61
|
-
DatabaseDataDemoComponent,
|
|
62
|
-
WsDataControlComponent,
|
|
63
|
-
WsMessagingComponent,
|
|
64
|
-
WsNotificationsComponent,
|
|
65
|
-
WsAiMessagingComponent], imports: [CommonModule,
|
|
66
|
-
ToastMessageDisplayModule,
|
|
67
|
-
FormsModule,
|
|
68
|
-
ReactiveFormsModule,
|
|
69
|
-
MatButtonModule,
|
|
70
|
-
MatTabsModule,
|
|
71
|
-
MatSelectModule,
|
|
72
|
-
MatChipsModule,
|
|
73
|
-
MatMenuModule,
|
|
74
|
-
MatIconModule,
|
|
75
|
-
MatTableModule,
|
|
76
|
-
MatButtonToggleModule,
|
|
77
|
-
MatAutocompleteModule,
|
|
78
|
-
MatProgressBarModule,
|
|
79
|
-
MatSlideToggleModule,
|
|
80
|
-
MatDividerModule,
|
|
81
|
-
MatFormFieldModule,
|
|
82
|
-
MatInputModule,
|
|
83
|
-
MatToolbarModule,
|
|
84
|
-
MatSlideToggleModule, i1.TranslateModule, MatSidenavModule,
|
|
85
|
-
FileDownloaderModule], exports: [HttpRequestServicesDemoComponent] }); }
|
|
86
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestManagerModule, providers: [
|
|
87
|
-
{ provide: HTTP_INTERCEPTORS, useClass: WithCredentialsInterceptor, multi: true },
|
|
88
|
-
{ provide: HTTP_INTERCEPTORS, useClass: RequestHeadersInterceptor, multi: true },
|
|
89
|
-
{ provide: HTTP_INTERCEPTORS, useClass: ProxyDebuggerInterceptor, multi: true },
|
|
90
|
-
{ provide: CONFIG_SETTINGS_TOKEN, useValue: ConfigOptions.adapt() },
|
|
91
|
-
HTTPManagerService, LocalStorageManagerService
|
|
92
|
-
], imports: [CommonModule,
|
|
93
|
-
ToastMessageDisplayModule,
|
|
94
|
-
FormsModule,
|
|
95
|
-
ReactiveFormsModule,
|
|
96
|
-
MatButtonModule,
|
|
97
|
-
MatTabsModule,
|
|
98
|
-
MatSelectModule,
|
|
99
|
-
MatChipsModule,
|
|
100
|
-
MatMenuModule,
|
|
101
|
-
MatIconModule,
|
|
102
|
-
MatTableModule,
|
|
103
|
-
MatButtonToggleModule,
|
|
104
|
-
MatAutocompleteModule,
|
|
105
|
-
MatProgressBarModule,
|
|
106
|
-
MatSlideToggleModule,
|
|
107
|
-
MatDividerModule,
|
|
108
|
-
MatFormFieldModule,
|
|
109
|
-
MatInputModule,
|
|
110
|
-
MatToolbarModule,
|
|
111
|
-
MatSlideToggleModule,
|
|
112
|
-
TranslateModule.forRoot(),
|
|
113
|
-
MatSidenavModule,
|
|
114
|
-
FileDownloaderModule] }); }
|
|
115
|
-
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestManagerModule, decorators: [{
|
|
117
|
-
type: NgModule,
|
|
118
|
-
args: [{
|
|
119
|
-
imports: [
|
|
120
|
-
CommonModule,
|
|
121
|
-
ToastMessageDisplayModule,
|
|
122
|
-
FormsModule,
|
|
123
|
-
ReactiveFormsModule,
|
|
124
|
-
MatButtonModule,
|
|
125
|
-
MatTabsModule,
|
|
126
|
-
MatSelectModule,
|
|
127
|
-
MatChipsModule,
|
|
128
|
-
MatMenuModule,
|
|
129
|
-
MatIconModule,
|
|
130
|
-
MatTableModule,
|
|
131
|
-
MatButtonToggleModule,
|
|
132
|
-
MatAutocompleteModule,
|
|
133
|
-
MatProgressBarModule,
|
|
134
|
-
MatSlideToggleModule,
|
|
135
|
-
MatDividerModule,
|
|
136
|
-
MatFormFieldModule,
|
|
137
|
-
MatInputModule,
|
|
138
|
-
MatToolbarModule,
|
|
139
|
-
MatSlideToggleModule,
|
|
140
|
-
TranslateModule.forRoot(),
|
|
141
|
-
MatSidenavModule,
|
|
142
|
-
FileDownloaderModule,
|
|
143
|
-
// MessengerChatModule,
|
|
144
|
-
// StoreStateManagerModule
|
|
145
|
-
],
|
|
146
|
-
declarations: [
|
|
147
|
-
HttpRequestServicesDemoComponent,
|
|
148
|
-
RequestManagerStateDemoComponent,
|
|
149
|
-
RequestManagerDemoComponent,
|
|
150
|
-
RequestSignalsManagerDemoComponent,
|
|
151
|
-
LocalStorageDemoComponent,
|
|
152
|
-
LocalStorageSignalsDemoComponent,
|
|
153
|
-
RequestManagerWsDemoComponent,
|
|
154
|
-
StoreStateManagerDemoComponent,
|
|
155
|
-
DatabaseDataDemoComponent,
|
|
156
|
-
WsDataControlComponent,
|
|
157
|
-
WsMessagingComponent,
|
|
158
|
-
WsNotificationsComponent,
|
|
159
|
-
WsAiMessagingComponent,
|
|
160
|
-
],
|
|
161
|
-
exports: [
|
|
162
|
-
HttpRequestServicesDemoComponent,
|
|
163
|
-
],
|
|
164
|
-
providers: [
|
|
165
|
-
{ provide: HTTP_INTERCEPTORS, useClass: WithCredentialsInterceptor, multi: true },
|
|
166
|
-
{ provide: HTTP_INTERCEPTORS, useClass: RequestHeadersInterceptor, multi: true },
|
|
167
|
-
{ provide: HTTP_INTERCEPTORS, useClass: ProxyDebuggerInterceptor, multi: true },
|
|
168
|
-
{ provide: CONFIG_SETTINGS_TOKEN, useValue: ConfigOptions.adapt() },
|
|
169
|
-
HTTPManagerService, LocalStorageManagerService
|
|
170
|
-
],
|
|
171
|
-
}]
|
|
172
|
-
}] });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3QtbWFuYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwy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QWUsQ0FBQyxPQUFPLEVBQUU7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjtxQkFDN0I7b0JBQ0MsWUFBWSxFQUFFO3dCQUNaLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQywyQkFBMkI7d0JBQzNCLGtDQUFrQzt3QkFDbEMseUJBQXlCO3dCQUN6QixnQ0FBZ0M7d0JBQ2hDLDZCQUE2Qjt3QkFDN0IsOEJBQThCO3dCQUM5Qix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdDQUFnQztxQkFDakM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNqRixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDaEYsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQy9FLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ25FLGtCQUFrQixFQUFFLDBCQUEwQjtxQkFDL0M7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuaW1wb3J0IHsgV2l0aENyZWRlbnRpYWxzSW50ZXJjZXB0b3IsIFJlcXVlc3RIZWFkZXJzSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgUHJveHlEZWJ1Z2dlckludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvcHJveHktZGVidWdnZXIuaW50ZXJjZXB0b3InO1xuXG5cbmltcG9ydCB7IENvbmZpZ09wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDT05GSUdfU0VUVElOR1NfVE9LRU4gfSBmcm9tICcuL21vZGVscy9jb25maWctdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgSFRUUE1hbmFnZXJTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRlck1vZHVsZSB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8vZmlsZS1kb3dubG9hZGVyL2ZpbGUtZG93bmxvYWQubW9kdWxlJztcbmltcG9ydCB7IFRvYXN0TWVzc2FnZURpc3BsYXlNb2R1bGUgfSBmcm9tICd0b2FzdC1tZXNzYWdlLWRpc3BsYXknO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuXG5pbXBvcnQgeyBEYXRhYmFzZURhdGFEZW1vQ29tcG9uZW50LCBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCwgTG9jYWxTdG9yYWdlRGVtb0NvbXBvbmVudCwgUmVxdWVzdE1hbmFnZXJEZW1vQ29tcG9uZW50LCBSZXF1ZXN0TWFuYWdlclN0YXRlRGVtb0NvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTaWduYWxzRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vbG9jYWwtc3RvcmFnZS1zaWduYWxzLWRlbW8vbG9jYWwtc3RvcmFnZS1zaWduYWxzLWRlbW8uY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RNYW5hZ2VyV3NEZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVxdWVzdFNpZ25hbHNNYW5hZ2VyRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9yZXF1ZXN0LXNpZ25hbHMtbWFuYWdlci1kZW1vLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9yZVN0YXRlTWFuYWdlckRlbW9Db21wb25lbnQgfSBmcm9tICcuL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3N0b3JlLXN0YXRlLW1hbmFnZXItZGVtby9zdG9yZS1zdGF0ZS1tYW5hZ2VyLWRlbW8uY29tcG9uZW50JztcblxuaW1wb3J0IHsgV3NEYXRhQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1kYXRhLWNvbnRyb2wvd3MtZGF0YS1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXc01lc3NhZ2luZ0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1tZXNzYWdpbmcvd3MtbWVzc2FnaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXc05vdGlmaWNhdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL2NvbXBvbmVudHMvd3Mtbm90aWZpY2F0aW9ucy93cy1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXc0FpTWVzc2FnaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9jb21wb25lbnRzL3dzLWFpLW1lc3NhZ2luZy93cy1haS1tZXNzYWdpbmcuY29tcG9uZW50JztcblxuLy8gaW1wb3J0IHsgTWVzc2VuZ2VyQ2hhdE1vZHVsZSB9IGZyb20gJ3NyYy9hcHAvY29tcG9uZW50cy9tZXNzZW5nZXItY2hhdC9tZXNzZW5nZXItY2hhdC5tb2R1bGUnO1xuLy8gaW1wb3J0IHsgU3RvcmVTdGF0ZU1hbmFnZXJNb2R1bGUgfSBmcm9tIFwic3JjL2FwcC9iZXRhX2NvbXBvbmVudHMvc3RvcmUtc3RhdGUtbWFuYWdlci9zdG9yZS1zdGF0ZS1tYW5hZ2VyLm1vZHVsZVwiO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVG9hc3RNZXNzYWdlRGlzcGxheU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KCksXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBGaWxlRG93bmxvYWRlck1vZHVsZSxcbiAgICAvLyBNZXNzZW5nZXJDaGF0TW9kdWxlLFxuICAgIC8vIFN0b3JlU3RhdGVNYW5hZ2VyTW9kdWxlXG5dLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCxcbiAgICBSZXF1ZXN0TWFuYWdlclN0YXRlRGVtb0NvbXBvbmVudCxcbiAgICBSZXF1ZXN0TWFuYWdlckRlbW9Db21wb25lbnQsXG4gICAgUmVxdWVzdFNpZ25hbHNNYW5hZ2VyRGVtb0NvbXBvbmVudCxcbiAgICBMb2NhbFN0b3JhZ2VEZW1vQ29tcG9uZW50LFxuICAgIExvY2FsU3RvcmFnZVNpZ25hbHNEZW1vQ29tcG9uZW50LFxuICAgIFJlcXVlc3RNYW5hZ2VyV3NEZW1vQ29tcG9uZW50LFxuICAgIFN0b3JlU3RhdGVNYW5hZ2VyRGVtb0NvbXBvbmVudCxcbiAgICBEYXRhYmFzZURhdGFEZW1vQ29tcG9uZW50LFxuICAgIFdzRGF0YUNvbnRyb2xDb21wb25lbnQsXG4gICAgV3NNZXNzYWdpbmdDb21wb25lbnQsXG4gICAgV3NOb3RpZmljYXRpb25zQ29tcG9uZW50LFxuICAgIFdzQWlNZXNzYWdpbmdDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBSZXF1ZXN0SGVhZGVyc0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBQcm94eURlYnVnZ2VySW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBDT05GSUdfU0VUVElOR1NfVE9LRU4sIHVzZVZhbHVlOiBDb25maWdPcHRpb25zLmFkYXB0KCkgfSxcbiAgICBIVFRQTWFuYWdlclNlcnZpY2UsIExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0TWFuYWdlck1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBDb25maWdPcHRpb25zID0gQ29uZmlnT3B0aW9ucy5hZGFwdCgpKTogTW9kdWxlV2l0aFByb3ZpZGVyczxIdHRwUmVxdWVzdE1hbmFnZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEh0dHBSZXF1ZXN0TWFuYWdlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENPTkZJR19TRVRUSU5HU19UT0tFTiwgdXNlVmFsdWU6IENvbmZpZ09wdGlvbnMuYWRhcHQoY29uZmlnKSB9LFxuICAgICAgICBIVFRQTWFuYWdlclNlcnZpY2UsIExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlIC8vYWxsIHNlcnZpY2VzIHRoYXQgbmVlZCBhY2Nlc3MgdG8gY29uZmlnXG4gICAgICBdLFxuICAgIH07XG4gICAgfVxuXG59XG5cblxuIl19
|
package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { Subject, ReplaySubject } from 'rxjs';
|
|
3
|
-
import { tap } from 'rxjs/operators';
|
|
4
|
-
import { DataSource } from '@angular/cdk/collections';
|
|
5
|
-
import { TableSchemaDef } from '../../services/database-manager-service/models/table-schema';
|
|
6
|
-
import { DatabaseManagerService } from '../../services/database-manager-service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/material/button";
|
|
9
|
-
import * as i2 from "@angular/material/table";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
export class DatabaseDataDemoComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.db = inject(DatabaseManagerService);
|
|
14
|
-
this.destroy$ = new Subject();
|
|
15
|
-
this.dataToDisplay = [];
|
|
16
|
-
this.dataSource = new DatabaseDataSource(this.dataToDisplay);
|
|
17
|
-
this.displayedColumns = ['id', 'last_name', 'age', 'amount'];
|
|
18
|
-
this.names = ['Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis'];
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
this.destroy$.next();
|
|
22
|
-
this.destroy$.complete();
|
|
23
|
-
}
|
|
24
|
-
addData() {
|
|
25
|
-
const newRecord = {
|
|
26
|
-
id: Math.max(...this.dataToDisplay.map(r => r.id), 0) + 1,
|
|
27
|
-
last_name: this.names[Math.floor(Math.random() * this.names.length)],
|
|
28
|
-
age: Math.floor(Math.random() * 80) + 18,
|
|
29
|
-
amount: Math.floor(Math.random() * 1000)
|
|
30
|
-
};
|
|
31
|
-
this.dataToDisplay = [...this.dataToDisplay, newRecord];
|
|
32
|
-
this.db.createTableRecord('sample_table', newRecord).subscribe(() => this.refreshData());
|
|
33
|
-
}
|
|
34
|
-
removeData() {
|
|
35
|
-
if (this.dataToDisplay.length > 0) {
|
|
36
|
-
const removedRecord = this.dataToDisplay[this.dataToDisplay.length - 1];
|
|
37
|
-
this.dataToDisplay = this.dataToDisplay.slice(0, -1);
|
|
38
|
-
this.db.deleteTableRecord('sample_table', removedRecord.id).subscribe(() => this.refreshData());
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
updateData() {
|
|
42
|
-
if (this.dataToDisplay.length === 0)
|
|
43
|
-
return;
|
|
44
|
-
const randomIndex = Math.floor(Math.random() * this.dataToDisplay.length);
|
|
45
|
-
const recordToUpdate = this.dataToDisplay[randomIndex];
|
|
46
|
-
const updatedRecord = {
|
|
47
|
-
...recordToUpdate,
|
|
48
|
-
last_name: this.names[Math.floor(Math.random() * this.names.length)],
|
|
49
|
-
age: Math.floor(Math.random() * 80) + 18,
|
|
50
|
-
amount: Math.floor(Math.random() * 1000)
|
|
51
|
-
};
|
|
52
|
-
this.dataToDisplay = this.dataToDisplay.map((r, index) => index === randomIndex ? updatedRecord : r);
|
|
53
|
-
this.db.updateTableRecord('sample_table', updatedRecord).subscribe(() => this.refreshData());
|
|
54
|
-
}
|
|
55
|
-
clearAllData() {
|
|
56
|
-
if (this.dataToDisplay.length === 0)
|
|
57
|
-
return;
|
|
58
|
-
const idsToDelete = this.dataToDisplay.map(r => r.id);
|
|
59
|
-
this.dataToDisplay = [];
|
|
60
|
-
this.db.deleteTableRecords('sample_table', idsToDelete).subscribe(() => this.refreshData());
|
|
61
|
-
}
|
|
62
|
-
refreshData() {
|
|
63
|
-
this.db.getTableRecords('sample_table').subscribe((records) => {
|
|
64
|
-
this.dataToDisplay = records || [];
|
|
65
|
-
this.dataSource.setData(this.dataToDisplay);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
ngOnInit() {
|
|
69
|
-
const tableDef = TableSchemaDef.adapt({
|
|
70
|
-
table: 'sample_table',
|
|
71
|
-
schema: '++id, last_name, age, amount'
|
|
72
|
-
});
|
|
73
|
-
this.db.createDatabaseTable(tableDef).subscribe(() => {
|
|
74
|
-
console.log('Database Table Initialized');
|
|
75
|
-
// hasTable
|
|
76
|
-
this.db.hasDatabaseTable('sample_table')
|
|
77
|
-
.subscribe(data => console.log('hasDatabaseTable:', data));
|
|
78
|
-
// Tables
|
|
79
|
-
this.db.getDatabaseTables()
|
|
80
|
-
.subscribe(data => console.log('getDatabaseTables:', data));
|
|
81
|
-
// getTable
|
|
82
|
-
this.db.getDatabaseTable('sample_table')
|
|
83
|
-
.subscribe(data => console.log('getDatabaseTable:', data));
|
|
84
|
-
// Table Schema
|
|
85
|
-
this.db.getDatabaseTableSchema('sample_table')
|
|
86
|
-
.subscribe(data => console.log('getDatabaseTableSchema:', data));
|
|
87
|
-
// Insert Table Records
|
|
88
|
-
const records = [
|
|
89
|
-
{ id: 1, age: 12, last_name: 'Bonifacio', amount: 80 },
|
|
90
|
-
{ id: 2, age: 15, last_name: 'Johns', amount: 700 },
|
|
91
|
-
{ id: 3, age: 22, last_name: 'Kims', amount: 234 },
|
|
92
|
-
{ id: 4, age: 45, last_name: 'Harrys', amount: 1200 },
|
|
93
|
-
];
|
|
94
|
-
this.db.createTableRecords('sample_table', records).subscribe(() => {
|
|
95
|
-
this.refreshData();
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
createTable(tableDef) {
|
|
100
|
-
return this.db.createDatabaseTable(tableDef);
|
|
101
|
-
}
|
|
102
|
-
// CRUD
|
|
103
|
-
findTableRecords(table, column, value) {
|
|
104
|
-
return this.db.findTableRecords(table, column, value)
|
|
105
|
-
.pipe(tap((data) => console.log('findTableRecords:', data)));
|
|
106
|
-
}
|
|
107
|
-
findTableRecord(table, column, value) {
|
|
108
|
-
return this.db.findTableRecord(table, column, value)
|
|
109
|
-
.pipe(tap((data) => console.log('findTableRecord:', data)));
|
|
110
|
-
}
|
|
111
|
-
getTableRecords(table) {
|
|
112
|
-
return this.db.getTableRecords(table)
|
|
113
|
-
.pipe(tap((data) => console.log('getTableRecords:', data)));
|
|
114
|
-
}
|
|
115
|
-
getTableRecord(table, id) {
|
|
116
|
-
return this.db.getTableRecord(table, id)
|
|
117
|
-
.pipe(tap((data) => console.log('getTableRecord:', data)));
|
|
118
|
-
}
|
|
119
|
-
createTableRecord(table, record) {
|
|
120
|
-
return this.db.createTableRecord(table, record)
|
|
121
|
-
.pipe(tap((data) => console.log('createTableRecord:', data)));
|
|
122
|
-
}
|
|
123
|
-
updateTableRecord(table, record) {
|
|
124
|
-
return this.db.updateTableRecord(table, record)
|
|
125
|
-
.pipe(tap((data) => console.log('updateTableRecord:', data)));
|
|
126
|
-
}
|
|
127
|
-
deleteTableRecord(table, id) {
|
|
128
|
-
return this.db.deleteTableRecord(table, id)
|
|
129
|
-
.pipe(tap((data) => console.log('deleteTableRecord:', data)));
|
|
130
|
-
}
|
|
131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseDataDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DatabaseDataDemoComponent, selector: "app-database-data-demo", ngImport: i0, template: "<div style=\"padding: 2rem;\">\n\n <h2>\n Database Manager Service Demo\n </h2>\n\n <div style=\"margin-bottom: 1rem; display: flex; gap: 1rem;\">\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"clearAllData()\"\n >\n Clear Data\n </button>\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"updateData()\"\n >\n Update Data\n </button>\n <div style=\"flex:1\"></div>\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!dataToDisplay.length\"\n (click)=\"removeData()\"\n >\n Remove Data\n </button>\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"addData()\"\n >\n Add Data\n </button>\n </div>\n\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"dataSource\">\n\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=\"last_name\">\n <th mat-header-cell *matHeaderCellDef>Last Name</th>\n <td mat-cell *matCellDef=\"let element\">{{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"age\">\n <th mat-header-cell *matHeaderCellDef>Age</th>\n <td mat-cell *matCellDef=\"let element\">{{element.age}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"amount\">\n <th mat-header-cell *matHeaderCellDef>Amount</th>\n <td mat-cell *matCellDef=\"let element\">{{element.amount | currency}}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }] }); }
|
|
133
|
-
}
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseDataDemoComponent, decorators: [{
|
|
135
|
-
type: Component,
|
|
136
|
-
args: [{ selector: 'app-database-data-demo', template: "<div style=\"padding: 2rem;\">\n\n <h2>\n Database Manager Service Demo\n </h2>\n\n <div style=\"margin-bottom: 1rem; display: flex; gap: 1rem;\">\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"clearAllData()\"\n >\n Clear Data\n </button>\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"updateData()\"\n >\n Update Data\n </button>\n <div style=\"flex:1\"></div>\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!dataToDisplay.length\"\n (click)=\"removeData()\"\n >\n Remove Data\n </button>\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"addData()\"\n >\n Add Data\n </button>\n </div>\n\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"dataSource\">\n\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=\"last_name\">\n <th mat-header-cell *matHeaderCellDef>Last Name</th>\n <td mat-cell *matCellDef=\"let element\">{{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"age\">\n <th mat-header-cell *matHeaderCellDef>Age</th>\n <td mat-cell *matCellDef=\"let element\">{{element.age}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"amount\">\n <th mat-header-cell *matHeaderCellDef>Amount</th>\n <td mat-cell *matCellDef=\"let element\">{{element.amount | currency}}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n</div>\n" }]
|
|
137
|
-
}], ctorParameters: () => [] });
|
|
138
|
-
class DatabaseDataSource extends DataSource {
|
|
139
|
-
constructor(initialData) {
|
|
140
|
-
super();
|
|
141
|
-
this._dataStream = new ReplaySubject();
|
|
142
|
-
this.setData(initialData);
|
|
143
|
-
}
|
|
144
|
-
connect() {
|
|
145
|
-
return this._dataStream;
|
|
146
|
-
}
|
|
147
|
-
disconnect() { }
|
|
148
|
-
setData(data) {
|
|
149
|
-
this._dataStream.next(data);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZGF0YS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vZGF0YWJhc2UtZGF0YS1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby9kYXRhYmFzZS1kYXRhLWRlbW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBY2pGLE1BQU0sT0FBTyx5QkFBeUI7SUFXcEM7UUFUQSxPQUFFLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFDM0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdkMsa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxxQkFBZ0IsR0FBYSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxF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QUFDLENBQzVELENBQUE7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUksS0FBYSxFQUFFLEVBQVU7UUFDNUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDMUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUM1RCxDQUFBO0lBQ0gsQ0FBQzsrR0FwTFUseUJBQXlCO21HQUF6Qix5QkFBeUIsOERDcEJ0QyxnMERBaUVBOzs0RkQ3Q2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3Qjs7QUE0THBDLE1BQU0sa0JBQW1CLFNBQVEsVUFBdUI7SUFHdEQsWUFBWSxXQUEwQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQUhGLGdCQUFXLEdBQUcsSUFBSSxhQUFhLEVBQWlCLENBQUM7UUFJdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxLQUFJLENBQUM7SUFFZixPQUFPLENBQUMsSUFBbUI7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcblxuaW1wb3J0IHsgVGFibGVTY2hlbWFEZWYgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL3RhYmxlLXNjaGVtYSc7XG5pbXBvcnQgeyBEYXRhYmFzZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWJhc2UtbWFuYWdlci1zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJlY29yZCB7XG4gIGlkOiBudW1iZXI7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBhZ2U6IG51bWJlcjtcbiAgYW1vdW50OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRhYmFzZS1kYXRhLWRlbW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YWJhc2UtZGF0YS1kZW1vLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YWJhc2UtZGF0YS1kZW1vLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VEYXRhRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBkYiA9IGluamVjdChEYXRhYmFzZU1hbmFnZXJTZXJ2aWNlKVxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBkYXRhVG9EaXNwbGF5OiBUYWJsZVJlY29yZFtdID0gW107XG4gIGRhdGFTb3VyY2UgPSBuZXcgRGF0YWJhc2VEYXRhU291cmNlKHRoaXMuZGF0YVRvRGlzcGxheSk7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gWydpZCcsICdsYXN0X25hbWUnLCAnYWdlJywgJ2Ftb3VudCddO1xuXG4gIG5hbWVzID0gWydTbWl0aCcsICdKb2huc29uJywgJ1dpbGxpYW1zJywgJ0Jyb3duJywgJ0pvbmVzJywgJ0dhcmNpYScsICdNaWxsZXInLCAnRGF2aXMnXTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFkZERhdGEoKSB7XG5cbiAgICBjb25zdCBuZXdSZWNvcmQ6IFRhYmxlUmVjb3JkID0ge1xuICAgICAgaWQ6IE1hdGgubWF4KC4uLnRoaXMuZGF0YVRvRGlzcGxheS5tYXAociA9PiByLmlkKSwgMCkgKyAxLFxuICAgICAgbGFzdF9uYW1lOiB0aGlzLm5hbWVzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubmFtZXMubGVuZ3RoKV0sXG4gICAgICBhZ2U6IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgwKSArIDE4LFxuICAgICAgYW1vdW50OiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKVxuICAgIH07XG5cbiAgICB0aGlzLmRhdGFUb0Rpc3BsYXkgPSBbLi4udGhpcy5kYXRhVG9EaXNwbGF5LCBuZXdSZWNvcmRdO1xuICAgIHRoaXMuZGIuY3JlYXRlVGFibGVSZWNvcmQoJ3NhbXBsZV90YWJsZScsIG5ld1JlY29yZCkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4gdGhpcy5yZWZyZXNoRGF0YSgpXG4gICAgKTtcblxuICB9XG5cbiAgcmVtb3ZlRGF0YSgpIHtcbiAgICBpZiAodGhpcy5kYXRhVG9EaXNwbGF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHJlbW92ZWRSZWNvcmQgPSB0aGlzLmRhdGFUb0Rpc3BsYXlbdGhpcy5kYXRhVG9EaXNwbGF5Lmxlbmd0aCAtIDFdO1xuICAgICAgdGhpcy5kYXRhVG9EaXNwbGF5ID0gdGhpcy5kYXRhVG9EaXNwbGF5LnNsaWNlKDAsIC0xKTtcbiAgICAgIHRoaXMuZGIuZGVsZXRlVGFibGVSZWNvcmQoJ3NhbXBsZV90YWJsZScsIHJlbW92ZWRSZWNvcmQuaWQpLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4gdGhpcy5yZWZyZXNoRGF0YSgpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZURhdGEoKSB7XG5cbiAgICBpZiAodGhpcy5kYXRhVG9EaXNwbGF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLmRhdGFUb0Rpc3BsYXkubGVuZ3RoKTtcbiAgICBjb25zdCByZWNvcmRUb1VwZGF0ZSA9IHRoaXMuZGF0YVRvRGlzcGxheVtyYW5kb21JbmRleF07XG5cbiAgICBjb25zdCB1cGRhdGVkUmVjb3JkOiBUYWJsZVJlY29yZCA9IHtcbiAgICAgIC4uLnJlY29yZFRvVXBkYXRlLFxuICAgICAgbGFzdF9uYW1lOiB0aGlzLm5hbWVzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubmFtZXMubGVuZ3RoKV0sXG4gICAgICBhZ2U6IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgwKSArIDE4LFxuICAgICAgYW1vdW50OiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKVxuICAgIH07XG5cbiAgICB0aGlzLmRhdGFUb0Rpc3BsYXkgPSB0aGlzLmRhdGFUb0Rpc3BsYXkubWFwKChyLCBpbmRleCkgPT5cbiAgICAgIGluZGV4ID09PSByYW5kb21JbmRleCA/IHVwZGF0ZWRSZWNvcmQgOiByXG4gICAgKTtcblxuICAgIHRoaXMuZGIudXBkYXRlVGFibGVSZWNvcmQoJ3NhbXBsZV90YWJsZScsIHVwZGF0ZWRSZWNvcmQpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHRoaXMucmVmcmVzaERhdGEoKVxuICAgICk7XG5cbiAgfVxuXG4gIGNsZWFyQWxsRGF0YSgpIHtcbiAgICBpZiAodGhpcy5kYXRhVG9EaXNwbGF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaWRzVG9EZWxldGUgPSB0aGlzLmRhdGFUb0Rpc3BsYXkubWFwKHIgPT4gci5pZCk7XG4gICAgdGhpcy5kYXRhVG9EaXNwbGF5ID0gW107XG5cbiAgICB0aGlzLmRiLmRlbGV0ZVRhYmxlUmVjb3Jkcygnc2FtcGxlX3RhYmxlJywgaWRzVG9EZWxldGUpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHRoaXMucmVmcmVzaERhdGEoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hEYXRhKCkge1xuICAgIHRoaXMuZGIuZ2V0VGFibGVSZWNvcmRzKCdzYW1wbGVfdGFibGUnKS5zdWJzY3JpYmUoXG4gICAgICAocmVjb3JkczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVRvRGlzcGxheSA9IHJlY29yZHMgfHwgW107XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXREYXRhKHRoaXMuZGF0YVRvRGlzcGxheSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgY29uc3QgdGFibGVEZWYgPSBUYWJsZVNjaGVtYURlZi5hZGFwdCh7XG4gICAgICB0YWJsZTogJ3NhbXBsZV90YWJsZScsXG4gICAgICBzY2hlbWE6ICcrK2lkLCBsYXN0X25hbWUsIGFnZSwgYW1vdW50J1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYi5jcmVhdGVEYXRhYmFzZVRhYmxlKHRhYmxlRGVmKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0RhdGFiYXNlIFRhYmxlIEluaXRpYWxpemVkJyk7XG5cbiAgICAgIC8vIGhhc1RhYmxlXG4gICAgICB0aGlzLmRiLmhhc0RhdGFiYXNlVGFibGUoJ3NhbXBsZV90YWJsZScpXG4gICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiBjb25zb2xlLmxvZygnaGFzRGF0YWJhc2VUYWJsZTonLCBkYXRhKSlcblxuICAgICAgLy8gVGFibGVzXG4gICAgICB0aGlzLmRiLmdldERhdGFiYXNlVGFibGVzKClcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IGNvbnNvbGUubG9nKCdnZXREYXRhYmFzZVRhYmxlczonLCBkYXRhKSlcblxuICAgICAgLy8gZ2V0VGFibGVcbiAgICAgIHRoaXMuZGIuZ2V0RGF0YWJhc2VUYWJsZSgnc2FtcGxlX3RhYmxlJylcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IGNvbnNvbGUubG9nKCdnZXREYXRhYmFzZVRhYmxlOicsIGRhdGEpKVxuXG4gICAgICAvLyBUYWJsZSBTY2hlbWFcbiAgICAgIHRoaXMuZGIuZ2V0RGF0YWJhc2VUYWJsZVNjaGVtYSgnc2FtcGxlX3RhYmxlJylcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IGNvbnNvbGUubG9nKCdnZXREYXRhYmFzZVRhYmxlU2NoZW1hOicsIGRhdGEpKVxuXG4gICAgICAvLyBJbnNlcnQgVGFibGUgUmVjb3Jkc1xuICAgICAgY29uc3QgcmVjb3JkcyA9IFtcbiAgICAgICAgeyBpZDogMSwgYWdlOiAxMiwgbGFzdF9uYW1lOiAnQm9uaWZhY2lvJywgYW1vdW50OiA4MCB9LFxuICAgICAgICB7IGlkOiAyLCBhZ2U6IDE1LCBsYXN0X25hbWU6ICdKb2hucycsIGFtb3VudDogNzAwIH0sXG4gICAgICAgIHsgaWQ6IDMsIGFnZTogMjIsIGxhc3RfbmFtZTogJ0tpbXMnLCBhbW91bnQ6IDIzNCB9LFxuICAgICAgICB7IGlkOiA0LCBhZ2U6IDQ1LCBsYXN0X25hbWU6ICdIYXJyeXMnLCBhbW91bnQ6IDEyMDAgfSxcbiAgICAgIF1cblxuICAgICAgdGhpcy5kYi5jcmVhdGVUYWJsZVJlY29yZHMoJ3NhbXBsZV90YWJsZScsIHJlY29yZHMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlVGFibGUodGFibGVEZWY6IFRhYmxlU2NoZW1hRGVmKSB7XG4gICAgcmV0dXJuIHRoaXMuZGIuY3JlYXRlRGF0YWJhc2VUYWJsZSh0YWJsZURlZilcbiAgfVxuXG4gIC8vIENSVURcbiAgZmluZFRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nLCBjb2x1bW46IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmRiLmZpbmRUYWJsZVJlY29yZHModGFibGUsIGNvbHVtbiwgdmFsdWUpXG4gICAgLnBpcGUoXG4gICAgICB0YXAoKGRhdGE6IGFueSkgPT4gY29uc29sZS5sb2coJ2ZpbmRUYWJsZVJlY29yZHM6JywgZGF0YSkpXG4gICAgKVxuICB9XG5cbiAgZmluZFRhYmxlUmVjb3JkKHRhYmxlOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGIuZmluZFRhYmxlUmVjb3JkKHRhYmxlLCBjb2x1bW4sIHZhbHVlKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IGNvbnNvbGUubG9nKCdmaW5kVGFibGVSZWNvcmQ6JywgZGF0YSkpXG4gICAgKVxuICB9XG5cbiAgZ2V0VGFibGVSZWNvcmRzKHRhYmxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5kYi5nZXRUYWJsZVJlY29yZHModGFibGUpXG4gICAgLnBpcGUoXG4gICAgICB0YXAoKGRhdGE6IGFueSkgPT4gY29uc29sZS5sb2coJ2dldFRhYmxlUmVjb3JkczonLCBkYXRhKSlcbiAgICApXG4gIH1cblxuICBnZXRUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZGIuZ2V0VGFibGVSZWNvcmQodGFibGUsIGlkKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IGNvbnNvbGUubG9nKCdnZXRUYWJsZVJlY29yZDonLCBkYXRhKSlcbiAgICApXG4gIH1cblxuICBjcmVhdGVUYWJsZVJlY29yZDxUPih0YWJsZTogc3RyaW5nLCByZWNvcmQ6IFQpIHtcbiAgICByZXR1cm4gdGhpcy5kYi5jcmVhdGVUYWJsZVJlY29yZCh0YWJsZSwgcmVjb3JkKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IGNvbnNvbGUubG9nKCdjcmVhdGVUYWJsZVJlY29yZDonLCBkYXRhKSlcbiAgICApXG4gIH1cblxuICB1cGRhdGVUYWJsZVJlY29yZDxUPih0YWJsZTogc3RyaW5nLCByZWNvcmQ6IFQpIHtcbiAgICByZXR1cm4gdGhpcy5kYi51cGRhdGVUYWJsZVJlY29yZCh0YWJsZSwgcmVjb3JkKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IGNvbnNvbGUubG9nKCd1cGRhdGVUYWJsZVJlY29yZDonLCBkYXRhKSlcbiAgICApXG4gIH1cblxuICBkZWxldGVUYWJsZVJlY29yZDxUPih0YWJsZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZGIuZGVsZXRlVGFibGVSZWNvcmQodGFibGUsIGlkKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChkYXRhOiBhbnkpID0+IGNvbnNvbGUubG9nKCdkZWxldGVUYWJsZVJlY29yZDonLCBkYXRhKSlcbiAgICApXG4gIH1cblxufVxuXG5jbGFzcyBEYXRhYmFzZURhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlPFRhYmxlUmVjb3JkPiB7XG4gIHByaXZhdGUgX2RhdGFTdHJlYW0gPSBuZXcgUmVwbGF5U3ViamVjdDxUYWJsZVJlY29yZFtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxEYXRhOiBUYWJsZVJlY29yZFtdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNldERhdGEoaW5pdGlhbERhdGEpO1xuICB9XG5cbiAgY29ubmVjdCgpOiBPYnNlcnZhYmxlPFRhYmxlUmVjb3JkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVN0cmVhbTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3QoKSB7fVxuXG4gIHNldERhdGEoZGF0YTogVGFibGVSZWNvcmRbXSkge1xuICAgIHRoaXMuX2RhdGFTdHJlYW0ubmV4dChkYXRhKTtcbiAgfVxuXG59XG4iLCI8ZGl2IHN0eWxlPVwicGFkZGluZzogMnJlbTtcIj5cblxuICA8aDI+XG4gICAgRGF0YWJhc2UgTWFuYWdlciBTZXJ2aWNlIERlbW9cbiAgPC9oMj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTsgZGlzcGxheTogZmxleDsgZ2FwOiAxcmVtO1wiPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cImNsZWFyQWxsRGF0YSgpXCJcbiAgICA+XG4gICAgICBDbGVhciBEYXRhXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlRGF0YSgpXCJcbiAgICA+XG4gICAgICBVcGRhdGUgRGF0YVxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIj48L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWRhdGFUb0Rpc3BsYXkubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZURhdGEoKVwiXG4gICAgPlxuICAgICAgUmVtb3ZlIERhdGFcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJhZGREYXRhKClcIlxuICAgID5cbiAgICAgIEFkZCBEYXRhXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpZFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPklEPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57e2VsZW1lbnQuaWR9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0X25hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5MYXN0IE5hbWU8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7ZWxlbWVudC5sYXN0X25hbWV9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhZ2VcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5BZ2U8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7ZWxlbWVudC5hZ2V9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhbW91bnRcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5BbW91bnQ8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7ZWxlbWVudC5hbW91bnQgfCBjdXJyZW5jeX19PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { CONFIG_SETTINGS_TOKEN } from '../models/config-token.model';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/material/button";
|
|
6
|
-
import * as i3 from "@angular/material/menu";
|
|
7
|
-
import * as i4 from "@angular/material/divider";
|
|
8
|
-
import * as i5 from "@angular/material/toolbar";
|
|
9
|
-
import * as i6 from "./request-manager-state-demo/request-manager-state-demo.component";
|
|
10
|
-
import * as i7 from "./request-manager-demo/request-manager-demo.component";
|
|
11
|
-
import * as i8 from "./local-storage-demo/local-storage-demo.component";
|
|
12
|
-
import * as i9 from "./request-manager-ws-demo/request-manager-ws-demo.component";
|
|
13
|
-
import * as i10 from "./store-state-manager-demo/store-state-manager-demo.component";
|
|
14
|
-
import * as i11 from "./database-data-demo/database-data-demo.component";
|
|
15
|
-
import * as i12 from "../models/config-options.model";
|
|
16
|
-
export class HttpRequestServicesDemoComponent {
|
|
17
|
-
constructor(configOptions) {
|
|
18
|
-
this.configOptions = configOptions;
|
|
19
|
-
this.wsServer = 'ws:';
|
|
20
|
-
this.jwtToken = '';
|
|
21
|
-
this.server = 'http:';
|
|
22
|
-
this.requestTypes = [
|
|
23
|
-
{ name: "Http Service", value: 'http_service' },
|
|
24
|
-
// { name: "Http Signals Service", value: 'http_signals_service', new: true },
|
|
25
|
-
{ name: "Http State Service", value: 'http_state_service' },
|
|
26
|
-
{ name: "Http State Service - Websockets", value: 'http_state_service_ws', new: false },
|
|
27
|
-
{ name: "Database Service", value: 'database_service', divider: true, disabled: false },
|
|
28
|
-
{ name: "Local Storage Service", value: 'local_storage_service' },
|
|
29
|
-
// { name: "Local Signals Storage Service", value: 'local_storage_signals_service', new: true },
|
|
30
|
-
{ name: "Store State Manager Service", value: 'store_state_manager', new: true },
|
|
31
|
-
];
|
|
32
|
-
this.selectedService = this.requestTypes[5].value; //menu selection default
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
if (this.configOptions)
|
|
36
|
-
this.injectionOptions = this.configOptions;
|
|
37
|
-
}
|
|
38
|
-
onSelected(type) {
|
|
39
|
-
this.selectedService = this.requestTypes[type].value;
|
|
40
|
-
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestServicesDemoComponent, deps: [{ token: CONFIG_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HttpRequestServicesDemoComponent, selector: "app-http-request-services-demo", inputs: { wsServer: "wsServer", jwtToken: "jwtToken", server: "server", user: "user", adapter: "adapter", mapper: "mapper" }, ngImport: i0, template: "<mat-toolbar style=\"display:flex\">\n <div>Http Request Manager Services</div>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button [matMenuTriggerFor]=\"menu\">Services</button>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngFor=\"let type of requestTypes; index as i\">\n <div\n *ngIf=\"type?.divider\"\n style=\"margin-top: .5rem; margin-bottom: .5rem;\"\n >\n <mat-divider></mat-divider>\n </div>\n <button\n mat-menu-item\n (click)=\"onSelected(i)\"\n [disabled]=\"type.disabled\"\n >\n {{ type.name }}\n </button>\n </ng-container>\n\n </mat-menu>\n</mat-toolbar>\n\n<span [ngSwitch]=\"selectedService\">\n <p *ngSwitchCase=\"'http_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-demo\n [server]=\"server\"\n [adapter]=\"adapter\"\n [mapper]=\"mapper\"\n ></app-request-manager-demo>\n </p>\n <!-- <p *ngSwitchCase=\"'http_signals_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-signals-manager-demo></app-request-signals-manager-demo>\n </p> -->\n <p *ngSwitchCase=\"'http_state_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-state-demo\n [server]=\"server\"\n [adapter]=\"adapter\"\n [mapper]=\"mapper\"\n ></app-request-manager-state-demo>\n </p>\n <p *ngSwitchCase=\"'http_state_service_ws'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-ws-demo\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-request-manager-ws-demo>\n </p>\n <p *ngSwitchCase=\"'database_service'\">\n <app-database-data-demo></app-database-data-demo>\n </p>\n <p *ngSwitchCase=\"'local_storage_service'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-local-storage-demo></app-local-storage-demo>\n </p>\n <!-- <p *ngSwitchCase=\"'local_storage_signals_service'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-local-storage-signals-demo></app-local-storage-signals-demo>\n </p> -->\n <p *ngSwitchCase=\"'store_state_manager'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-store-state-manager-demo></app-store-state-manager-demo>\n </p>\n <p *ngSwitchDefault>\n Other\n </p>\n</span>\n\n<ng-template #HTTP_OPTIONS>\n <ng-container *ngIf=\"injectionOptions?.httpRequestOptions\">\n <div class=\"box\">\n <h3 style=\"font-weight: bold;\">Injection Token Detected - HTTP Options</h3>\n {{ injectionOptions?.httpRequestOptions| json }}\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #LOCAL_OPTIONS>\n <ng-container class=\"box\" *ngIf=\"injectionOptions?.LocalStorageOptions\">\n <div class=\"box\">\n <h3 style=\"font-weight: bold;\">Injection Token Detected - LocalStorage Options</h3>\n {{ injectionOptions?.LocalStorageOptions| json }}\n </div>\n </ng-container>\n</ng-template>\n\n\n", styles: [".box{padding:1rem;background-color:#f5f5f5;border:thin gray solid;margin-top:1rem}\n"], 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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.RequestManagerStateDemoComponent, selector: "app-request-manager-state-demo", inputs: ["server", "adapter", "mapper"] }, { kind: "component", type: i7.RequestManagerDemoComponent, selector: "app-request-manager-demo", inputs: ["server", "adapter", "mapper"] }, { kind: "component", type: i8.LocalStorageDemoComponent, selector: "app-local-storage-demo" }, { kind: "component", type: i9.RequestManagerWsDemoComponent, selector: "app-request-manager-ws-demo", inputs: ["server", "wsServer", "jwtToken", "user"] }, { kind: "component", type: i10.StoreStateManagerDemoComponent, selector: "app-store-state-manager-demo" }, { kind: "component", type: i11.DatabaseDataDemoComponent, selector: "app-database-data-demo" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpRequestServicesDemoComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'app-http-request-services-demo', template: "<mat-toolbar style=\"display:flex\">\n <div>Http Request Manager Services</div>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button [matMenuTriggerFor]=\"menu\">Services</button>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngFor=\"let type of requestTypes; index as i\">\n <div\n *ngIf=\"type?.divider\"\n style=\"margin-top: .5rem; margin-bottom: .5rem;\"\n >\n <mat-divider></mat-divider>\n </div>\n <button\n mat-menu-item\n (click)=\"onSelected(i)\"\n [disabled]=\"type.disabled\"\n >\n {{ type.name }}\n </button>\n </ng-container>\n\n </mat-menu>\n</mat-toolbar>\n\n<span [ngSwitch]=\"selectedService\">\n <p *ngSwitchCase=\"'http_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-demo\n [server]=\"server\"\n [adapter]=\"adapter\"\n [mapper]=\"mapper\"\n ></app-request-manager-demo>\n </p>\n <!-- <p *ngSwitchCase=\"'http_signals_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-signals-manager-demo></app-request-signals-manager-demo>\n </p> -->\n <p *ngSwitchCase=\"'http_state_service'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-state-demo\n [server]=\"server\"\n [adapter]=\"adapter\"\n [mapper]=\"mapper\"\n ></app-request-manager-state-demo>\n </p>\n <p *ngSwitchCase=\"'http_state_service_ws'\">\n <ng-container *ngTemplateOutlet=\"HTTP_OPTIONS\"></ng-container>\n <app-request-manager-ws-demo\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-request-manager-ws-demo>\n </p>\n <p *ngSwitchCase=\"'database_service'\">\n <app-database-data-demo></app-database-data-demo>\n </p>\n <p *ngSwitchCase=\"'local_storage_service'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-local-storage-demo></app-local-storage-demo>\n </p>\n <!-- <p *ngSwitchCase=\"'local_storage_signals_service'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-local-storage-signals-demo></app-local-storage-signals-demo>\n </p> -->\n <p *ngSwitchCase=\"'store_state_manager'\">\n <ng-container *ngTemplateOutlet=\"LOCAL_OPTIONS\"></ng-container>\n <app-store-state-manager-demo></app-store-state-manager-demo>\n </p>\n <p *ngSwitchDefault>\n Other\n </p>\n</span>\n\n<ng-template #HTTP_OPTIONS>\n <ng-container *ngIf=\"injectionOptions?.httpRequestOptions\">\n <div class=\"box\">\n <h3 style=\"font-weight: bold;\">Injection Token Detected - HTTP Options</h3>\n {{ injectionOptions?.httpRequestOptions| json }}\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #LOCAL_OPTIONS>\n <ng-container class=\"box\" *ngIf=\"injectionOptions?.LocalStorageOptions\">\n <div class=\"box\">\n <h3 style=\"font-weight: bold;\">Injection Token Detected - LocalStorage Options</h3>\n {{ injectionOptions?.LocalStorageOptions| json }}\n </div>\n </ng-container>\n</ng-template>\n\n\n", styles: [".box{padding:1rem;background-color:#f5f5f5;border:thin gray solid;margin-top:1rem}\n"] }]
|
|
47
|
-
}], ctorParameters: () => [{ type: i12.ConfigOptions, decorators: [{
|
|
48
|
-
type: Inject,
|
|
49
|
-
args: [CONFIG_SETTINGS_TOKEN]
|
|
50
|
-
}] }], propDecorators: { wsServer: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], jwtToken: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], server: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}], user: [{
|
|
57
|
-
type: Input
|
|
58
|
-
}], adapter: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], mapper: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTckUsTUFBTSxPQUFPLGdDQUFnQztJQXlCM0MsWUFDeUMsYUFBNkI7UUFBN0Isa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBeEI3RCxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLGFBQVEsR0FBRyxFQUFFLENBQUE7UUFDYixXQUFNLEdBQUcsT0FBTyxDQUFBO1FBTXpCLGlCQUFZLEdBQUc7WUFDYixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUMvQyw4RUFBOEU7WUFDOUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO1lBQzNELEVBQUUsSUFBSSxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ3ZGLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdkYsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFO1lBQ2pFLGdHQUFnRztZQUNoRyxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtTQUNqRixDQUFBO1FBRUQsb0JBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQSxDQUFDLHdCQUF3QjtJQU1qRSxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUcsSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUN0RCxDQUFDOytHQW5DVSxnQ0FBZ0Msa0JBMEJqQyxxQkFBcUI7bUdBMUJwQixnQ0FBZ0Msb01DWDdDLGtuR0E2RkE7OzRGRGxGYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkE4QnZDLE1BQU07MkJBQUMscUJBQXFCO3lDQXhCdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENPTkZJR19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4uL21vZGVscy9jb25maWctdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlnT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy9jb25maWctb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGF0YSB9IGZyb20gJy4vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vbW9kZWxzL3VzZXItZGF0YS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTZXJ2aWNlc0RlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHdzU2VydmVyID0gJ3dzOidcbiAgQElucHV0KCkgand0VG9rZW4gPSAnJ1xuICBASW5wdXQoKSBzZXJ2ZXIgPSAnaHR0cDonXG4gIEBJbnB1dCgpIHVzZXI/OiBVc2VyRGF0YVxuXG4gIEBJbnB1dCgpIGFkYXB0ZXI/OiBGdW5jdGlvblxuICBASW5wdXQoKSBtYXBwZXI/OiBGdW5jdGlvblxuXG4gIHJlcXVlc3RUeXBlcyA9IFtcbiAgICB7IG5hbWU6IFwiSHR0cCBTZXJ2aWNlXCIsIHZhbHVlOiAnaHR0cF9zZXJ2aWNlJyB9LFxuICAgIC8vIHsgbmFtZTogXCJIdHRwIFNpZ25hbHMgU2VydmljZVwiLCB2YWx1ZTogJ2h0dHBfc2lnbmFsc19zZXJ2aWNlJywgbmV3OiB0cnVlIH0sXG4gICAgeyBuYW1lOiBcIkh0dHAgU3RhdGUgU2VydmljZVwiLCB2YWx1ZTogJ2h0dHBfc3RhdGVfc2VydmljZScgfSxcbiAgICB7IG5hbWU6IFwiSHR0cCBTdGF0ZSBTZXJ2aWNlIC0gV2Vic29ja2V0c1wiLCB2YWx1ZTogJ2h0dHBfc3RhdGVfc2VydmljZV93cycsIG5ldzogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwiRGF0YWJhc2UgU2VydmljZVwiLCB2YWx1ZTogJ2RhdGFiYXNlX3NlcnZpY2UnLCBkaXZpZGVyOiB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6IFwiTG9jYWwgU3RvcmFnZSBTZXJ2aWNlXCIsIHZhbHVlOiAnbG9jYWxfc3RvcmFnZV9zZXJ2aWNlJyB9LFxuICAgIC8vIHsgbmFtZTogXCJMb2NhbCBTaWduYWxzIFN0b3JhZ2UgU2VydmljZVwiLCB2YWx1ZTogJ2xvY2FsX3N0b3JhZ2Vfc2lnbmFsc19zZXJ2aWNlJywgbmV3OiB0cnVlIH0sXG4gICAgeyBuYW1lOiBcIlN0b3JlIFN0YXRlIE1hbmFnZXIgU2VydmljZVwiLCB2YWx1ZTogJ3N0b3JlX3N0YXRlX21hbmFnZXInLCBuZXc6IHRydWUgfSxcbiAgXVxuXG4gIHNlbGVjdGVkU2VydmljZSA9IHRoaXMucmVxdWVzdFR5cGVzWzVdLnZhbHVlIC8vbWVudSBzZWxlY3Rpb24gZGVmYXVsdFxuXG4gIGluamVjdGlvbk9wdGlvbnM/OiBDb25maWdPcHRpb25zXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDT05GSUdfU0VUVElOR1NfVE9LRU4pIHByaXZhdGUgY29uZmlnT3B0aW9ucz86IENvbmZpZ09wdGlvbnNcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZih0aGlzLmNvbmZpZ09wdGlvbnMpIHRoaXMuaW5qZWN0aW9uT3B0aW9ucyA9IHRoaXMuY29uZmlnT3B0aW9uc1xuICB9XG5cbiAgb25TZWxlY3RlZCh0eXBlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZSA9IHRoaXMucmVxdWVzdFR5cGVzW3R5cGVdLnZhbHVlXG4gIH1cblxufVxuIiwiPG1hdC10b29sYmFyICBzdHlsZT1cImRpc3BsYXk6ZmxleFwiPlxuICA8ZGl2Pkh0dHAgUmVxdWVzdCBNYW5hZ2VyIFNlcnZpY2VzPC9kaXY+XG4gIDxkaXYgc3R5bGU9XCJmbGV4OjFcIj48L2Rpdj5cbiAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5TZXJ2aWNlczwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHlwZSBvZiByZXF1ZXN0VHlwZXM7IGluZGV4IGFzIGlcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJ0eXBlPy5kaXZpZGVyXCJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTsgbWFyZ2luLWJvdHRvbTogLjVyZW07XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3RlZChpKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0eXBlLmRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICB7eyB0eXBlLm5hbWUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvbWF0LW1lbnU+XG48L21hdC10b29sYmFyPlxuXG48c3BhbiBbbmdTd2l0Y2hdPVwic2VsZWN0ZWRTZXJ2aWNlXCI+XG4gIDxwICpuZ1N3aXRjaENhc2U9XCInaHR0cF9zZXJ2aWNlJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJIVFRQX09QVElPTlNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8YXBwLXJlcXVlc3QtbWFuYWdlci1kZW1vXG4gICAgICBbc2VydmVyXT1cInNlcnZlclwiXG4gICAgICBbYWRhcHRlcl09XCJhZGFwdGVyXCJcbiAgICAgIFttYXBwZXJdPVwibWFwcGVyXCJcbiAgICA+PC9hcHAtcmVxdWVzdC1tYW5hZ2VyLWRlbW8+XG4gIDwvcD5cbiAgPCEtLSA8cCAqbmdTd2l0Y2hDYXNlPVwiJ2h0dHBfc2lnbmFsc19zZXJ2aWNlJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJIVFRQX09QVElPTlNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8YXBwLXJlcXVlc3Qtc2lnbmFscy1tYW5hZ2VyLWRlbW8+PC9hcHAtcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtbz5cbiAgPC9wPiAtLT5cbiAgPHAgKm5nU3dpdGNoQ2FzZT1cIidodHRwX3N0YXRlX3NlcnZpY2UnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkhUVFBfT1BUSU9OU1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxhcHAtcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLWRlbW9cbiAgICAgIFtzZXJ2ZXJdPVwic2VydmVyXCJcbiAgICAgIFthZGFwdGVyXT1cImFkYXB0ZXJcIlxuICAgICAgW21hcHBlcl09XCJtYXBwZXJcIlxuICAgID48L2FwcC1yZXF1ZXN0LW1hbmFnZXItc3RhdGUtZGVtbz5cbiAgPC9wPlxuICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ2h0dHBfc3RhdGVfc2VydmljZV93cydcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiSFRUUF9PUFRJT05TXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGFwcC1yZXF1ZXN0LW1hbmFnZXItd3MtZGVtb1xuICAgICAgW3NlcnZlcl09XCJzZXJ2ZXJcIlxuICAgICAgW3dzU2VydmVyXT1cIndzU2VydmVyXCJcbiAgICAgIFtqd3RUb2tlbl09XCJqd3RUb2tlblwiXG4gICAgICBbdXNlcl09XCJ1c2VyXCJcbiAgICA+PC9hcHAtcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8+XG4gIDwvcD5cbiAgPHAgKm5nU3dpdGNoQ2FzZT1cIidkYXRhYmFzZV9zZXJ2aWNlJ1wiPlxuICAgIDxhcHAtZGF0YWJhc2UtZGF0YS1kZW1vPjwvYXBwLWRhdGFiYXNlLWRhdGEtZGVtbz5cbiAgPC9wPlxuICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ2xvY2FsX3N0b3JhZ2Vfc2VydmljZSdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiTE9DQUxfT1BUSU9OU1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxhcHAtbG9jYWwtc3RvcmFnZS1kZW1vPjwvYXBwLWxvY2FsLXN0b3JhZ2UtZGVtbz5cbiAgPC9wPlxuICA8IS0tIDxwICpuZ1N3aXRjaENhc2U9XCInbG9jYWxfc3RvcmFnZV9zaWduYWxzX3NlcnZpY2UnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkxPQ0FMX09QVElPTlNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8YXBwLWxvY2FsLXN0b3JhZ2Utc2lnbmFscy1kZW1vPjwvYXBwLWxvY2FsLXN0b3JhZ2Utc2lnbmFscy1kZW1vPlxuICA8L3A+IC0tPlxuICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ3N0b3JlX3N0YXRlX21hbmFnZXInXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkxPQ0FMX09QVElPTlNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8YXBwLXN0b3JlLXN0YXRlLW1hbmFnZXItZGVtbz48L2FwcC1zdG9yZS1zdGF0ZS1tYW5hZ2VyLWRlbW8+XG4gIDwvcD5cbiAgPHAgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICBPdGhlclxuICA8L3A+XG48L3NwYW4+XG5cbjxuZy10ZW1wbGF0ZSAjSFRUUF9PUFRJT05TPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5qZWN0aW9uT3B0aW9ucz8uaHR0cFJlcXVlc3RPcHRpb25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImJveFwiPlxuICAgICAgPGgzIHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGQ7XCI+SW5qZWN0aW9uIFRva2VuIERldGVjdGVkIC0gSFRUUCBPcHRpb25zPC9oMz5cbiAgICAgIHt7IGluamVjdGlvbk9wdGlvbnM/Lmh0dHBSZXF1ZXN0T3B0aW9uc3wganNvbiB9fVxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjTE9DQUxfT1BUSU9OUz5cbiAgPG5nLWNvbnRhaW5lciBjbGFzcz1cImJveFwiICpuZ0lmPVwiaW5qZWN0aW9uT3B0aW9ucz8uTG9jYWxTdG9yYWdlT3B0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgIDxoMyBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPkluamVjdGlvbiBUb2tlbiBEZXRlY3RlZCAtIExvY2FsU3RvcmFnZSBPcHRpb25zPC9oMz5cbiAgICAgIHt7IGluamVjdGlvbk9wdGlvbnM/LkxvY2FsU3RvcmFnZU9wdGlvbnN8IGpzb24gfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG5cbiJdfQ==
|