ontimize-web-ngx 15.6.0-next.0 → 15.6.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +3 -3
  2. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
  3. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
  4. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
  5. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
  6. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +42 -24
  7. package/esm2020/lib/components/form/o-form.component.mjs +4 -3
  8. package/esm2020/lib/components/form/services/o-form-message.service.mjs +2 -2
  9. package/esm2020/lib/components/grid/o-grid.component.mjs +19 -17
  10. package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +12 -15
  11. package/esm2020/lib/components/index.mjs +2 -1
  12. package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +3 -2
  13. package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +9 -1
  14. package/esm2020/lib/components/input/o-form-service-component.class.mjs +5 -4
  15. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
  16. package/esm2020/lib/components/list/o-list.component.mjs +41 -16
  17. package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +12 -15
  18. package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
  19. package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +33 -0
  20. package/esm2020/lib/components/o-service-base-component.class.mjs +5 -4
  21. package/esm2020/lib/components/o-service-component.class.mjs +10 -9
  22. package/esm2020/lib/components/o-skeleton.component.mjs +15 -6
  23. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
  24. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
  25. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +5 -4
  26. package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
  27. package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
  28. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
  29. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
  30. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
  31. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
  32. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
  33. package/esm2020/lib/components/table/extensions/o-table.dao.mjs +14 -14
  34. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +5 -19
  35. package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
  36. package/esm2020/lib/components/table/o-table.component.mjs +104 -10
  37. package/esm2020/lib/components/table/o-table.module.mjs +4 -1
  38. package/esm2020/lib/components/tree/o-tree.component.mjs +96 -14
  39. package/esm2020/lib/components/tree/o-tree.datasource.mjs +3 -3
  40. package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
  41. package/esm2020/lib/config/app-config.mjs +1 -1
  42. package/esm2020/lib/config/o-providers.mjs +6 -6
  43. package/esm2020/lib/i18n/i18n.mjs +6 -3
  44. package/esm2020/lib/injection-tokens/index.mjs +19 -0
  45. package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
  46. package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
  47. package/esm2020/lib/interfaces/index.mjs +3 -1
  48. package/esm2020/lib/interfaces/jsonapi-config.interface.mjs +3 -0
  49. package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
  50. package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
  51. package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
  52. package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
  53. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
  54. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -3
  55. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -2
  56. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -1
  57. package/esm2020/lib/services/base-data-service.class.mjs +2 -1
  58. package/esm2020/lib/services/base-service.class.mjs +3 -3
  59. package/esm2020/lib/services/factories.mjs +26 -54
  60. package/esm2020/lib/services/index.mjs +3 -2
  61. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +16 -14
  62. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +54 -23
  63. package/esm2020/lib/services/ontimize/index.mjs +1 -2
  64. package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +1 -5
  65. package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +2 -2
  66. package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -6
  67. package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
  68. package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
  69. package/esm2020/lib/services/request-adapter/index.mjs +5 -0
  70. package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
  71. package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
  72. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
  73. package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
  74. package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
  75. package/esm2020/lib/services/translate/o-translate.service.mjs +8 -4
  76. package/esm2020/lib/types/config.type.mjs +1 -1
  77. package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
  78. package/esm2020/lib/types/index.mjs +1 -2
  79. package/esm2020/lib/types/service-configuration.type.mjs +1 -1
  80. package/esm2020/lib/types/table/index.mjs +2 -1
  81. package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
  82. package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
  83. package/esm2020/lib/util/codes.mjs +3 -1
  84. package/esm2020/lib/util/errors.mjs +3 -9
  85. package/esm2020/lib/util/factory.util.mjs +67 -0
  86. package/esm2020/lib/util/index.mjs +3 -1
  87. package/esm2020/lib/util/injection-token.utils.mjs +4 -0
  88. package/esm2020/lib/util/preference-mapping-util.mjs +22 -7
  89. package/esm2020/lib/util/sqltypes.mjs +2 -2
  90. package/esm2020/lib/util/util.mjs +11 -38
  91. package/esm2020/public-api.mjs +2 -1
  92. package/fesm2015/ontimize-web-ngx.mjs +6801 -6332
  93. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  94. package/fesm2020/ontimize-web-ngx.mjs +6660 -6211
  95. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  96. package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
  97. package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
  98. package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
  99. package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
  100. package/lib/components/form/navigation/o-form-navigation.component.d.ts +7 -4
  101. package/lib/components/grid/skeketon/o-grid-skeleton.component.d.ts +4 -7
  102. package/lib/components/index.d.ts +1 -0
  103. package/lib/components/input/o-boolean-form-data-component.class.d.ts +1 -0
  104. package/lib/components/list/o-list.component.d.ts +5 -1
  105. package/lib/components/list/skeleton/o-list-skeleton.component.d.ts +4 -7
  106. package/lib/components/o-repeatable-skeleton.component.d.ts +9 -0
  107. package/lib/components/o-skeleton.component.d.ts +10 -5
  108. package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
  109. package/lib/components/table/column/o-column.class.d.ts +2 -1
  110. package/lib/components/table/column/o-table-column.component.d.ts +2 -2
  111. package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
  112. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
  113. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
  114. package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
  115. package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
  116. package/lib/components/table/extensions/o-table.dao.d.ts +3 -2
  117. package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -10
  118. package/lib/components/table/o-table-base.class.d.ts +3 -0
  119. package/lib/components/table/o-table.component.d.ts +12 -2
  120. package/lib/components/tree/o-tree.component.d.ts +10 -1
  121. package/lib/components/user-info/o-user-info.component.d.ts +2 -1
  122. package/lib/config/app-config.d.ts +1 -1
  123. package/lib/config/o-directives.d.ts +1 -1
  124. package/lib/i18n/i18n.d.ts +3 -0
  125. package/lib/injection-tokens/index.d.ts +33 -0
  126. package/lib/interfaces/base-response.interface.d.ts +0 -2
  127. package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
  128. package/lib/interfaces/index.d.ts +2 -0
  129. package/lib/interfaces/jsonapi-config.interface.d.ts +3 -0
  130. package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
  131. package/lib/interfaces/o-table-column.interface.d.ts +2 -1
  132. package/lib/interfaces/service-response.interface.d.ts +2 -0
  133. package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
  134. package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
  135. package/lib/services/base-data-service.class.d.ts +1 -0
  136. package/lib/services/base-service.class.d.ts +2 -2
  137. package/lib/services/factories.d.ts +10 -31
  138. package/lib/services/index.d.ts +2 -1
  139. package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +1 -1
  140. package/lib/services/jsonapi/jsonapi.service.d.ts +7 -5
  141. package/lib/services/ontimize/index.d.ts +0 -1
  142. package/lib/services/ontimize/ontimize-ee.service.d.ts +0 -1
  143. package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
  144. package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
  145. package/lib/services/request-adapter/index.d.ts +4 -0
  146. package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
  147. package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
  148. package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
  149. package/lib/services/state/o-table-component-state.class.d.ts +3 -0
  150. package/lib/services/translate/o-translate.service.d.ts +1 -0
  151. package/lib/types/config.type.d.ts +2 -2
  152. package/lib/types/form-layout-detail-component-data.type.d.ts +1 -1
  153. package/lib/types/index.d.ts +0 -1
  154. package/lib/types/service-configuration.type.d.ts +12 -2
  155. package/lib/types/table/index.d.ts +1 -0
  156. package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
  157. package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
  158. package/lib/util/codes.d.ts +3 -0
  159. package/lib/util/factory.util.d.ts +10 -0
  160. package/lib/util/index.d.ts +2 -0
  161. package/lib/util/injection-token.utils.d.ts +2 -0
  162. package/lib/util/preference-mapping-util.d.ts +22 -3
  163. package/lib/util/util.d.ts +1 -3
  164. package/package.json +1 -1
  165. package/public-api.d.ts +1 -0
  166. package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +0 -17
  167. package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
  168. package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
  169. package/esm2020/lib/services/query-arguments/index.mjs +0 -5
  170. package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -63
  171. package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
  172. package/esm2020/lib/types/ontimize-service-config.type.mjs +0 -2
  173. package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +0 -7
  174. package/lib/services/query-arguments/index.d.ts +0 -4
  175. package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
  176. package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
  177. package/lib/types/ontimize-service-config.type.d.ts +0 -5
@@ -1,18 +1,18 @@
1
- import { InjectionToken, Injector } from '@angular/core';
1
+ import { Injector } from '@angular/core';
2
2
  import { AppConfig } from '../config/app-config';
3
- import { ServiceType } from '../types/service-type.type';
3
+ import { O_AUTH_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_LOCALSTORAGE_SERVICE, O_PERMISSION_SERVICE, O_RESPONSE_ADAPTER, O_REQUEST_ADAPTER } from '../injection-tokens';
4
+ import { _getInjectionTokenValue } from '../util/injection-token.utils';
4
5
  import { Util } from '../util/util';
5
6
  import { AuthService } from './auth.service';
6
7
  import { JSONAPIPreferencesService } from './jsonapi/jsonapi-preferences.service';
7
8
  import { JSONAPIServiceResponseAdapter } from './jsonapi/jsonapi-service-response.adapter';
8
- import { JSONAPIService } from './jsonapi/jsonapi.service';
9
+ import { LocalStorageService } from './local-storage.service';
9
10
  import { NameConventionLower } from './name-convention/name-convention-lower.service';
10
11
  import { NameConventionUpper } from './name-convention/name-convention-upper.service';
11
12
  import { NameConvention } from './name-convention/name-convention.service';
12
13
  import { OntimizeAuthService } from './o-auth.service';
13
14
  import { OntimizeExportDataProviderService3X } from './ontimize-export-data-provider-3x.service';
14
15
  import { OntimizeExportDataProviderService } from './ontimize-export-data-provider.service';
15
- import { OntimizeEEService } from './ontimize/ontimize-ee.service';
16
16
  import { OntimizeExportService3X } from './ontimize/ontimize-export-3xx.service';
17
17
  import { OntimizeExportService } from './ontimize/ontimize-export.service';
18
18
  import { OntimizeFileService } from './ontimize/ontimize-file.service';
@@ -21,25 +21,10 @@ import { OntimizeServiceResponseAdapter } from './ontimize/ontimize-service-resp
21
21
  import { OntimizeService } from './ontimize/ontimize.service';
22
22
  import { OntimizeEEPermissionsService } from './permissions/ontimize-ee-permissions.service';
23
23
  import { OntimizePermissionsService } from './permissions/ontimize-permissions.service';
24
- import { JSONAPIQueryArgumentsAdapter } from './query-arguments/jsonapi-query-arguments.adapter';
25
- import { OntimizeQueryArgumentsAdapter } from './query-arguments/ontimize-query-arguments.adapter';
24
+ import { JSONAPIRequestArgumentsAdapter } from './request-adapter/jsonapi-request-arguments.adapter';
25
+ import { OntimizeRequestArgumentsAdapter } from './request-adapter/ontimize-request-arguments.adapter';
26
26
  import { AbstractComponentStateService, DefaultComponentStateService } from './state/o-component-state.service';
27
- import { LocalStorageService } from './local-storage.service';
28
- export const O_DATA_SERVICE = new InjectionToken('Ontimize data service');
29
- export const O_RESPONSE_ADAPTER = new InjectionToken('Service response adapter');
30
- export const O_TRANSLATE_SERVICE = new InjectionToken('Translate service');
31
- export const O_FILE_SERVICE = new InjectionToken('File uploader service');
32
- export const O_LOCALSTORAGE_SERVICE = new InjectionToken('Local storage service');
33
- export const O_EXPORT_SERVICE = new InjectionToken('Export service');
34
- export const O_PERMISSION_SERVICE = new InjectionToken('Permission service');
35
- export const O_AUTH_SERVICE = new InjectionToken('Authentication service');
36
- export const O_COMPONENT_STATE_SERVICE = new InjectionToken('Component state service');
37
- export const O_CHART_ON_DEMAND_SERVICE = new InjectionToken('Chart on demand service');
38
- export const O_REPORT_SERVICE = new InjectionToken('Report service');
39
- export const O_ERROR_DIALOG_MANAGER = new InjectionToken('Error dialog manager');
40
- export const O_EXPORT_DATA_SERVICE = new InjectionToken('Export data provider');
41
- export const O_MAT_ERROR_OPTIONS = new InjectionToken('o-mat-error-options');
42
- export const O_FORM_MESSAGE_SERVICE = new InjectionToken('Ontimize o-form message service');
27
+ import { FactoryUtil } from '../util/factory.util';
43
28
  export function dataServiceFactory(injector) {
44
29
  const serviceClass = _getInjectionTokenValue(O_DATA_SERVICE, injector);
45
30
  const service = Util.createServiceInstance(serviceClass, injector);
@@ -48,19 +33,10 @@ export function dataServiceFactory(injector) {
48
33
  }
49
34
  const config = injector.get(AppConfig).getConfiguration();
50
35
  const serviceType = config.serviceType;
51
- return createServiceInstance(serviceType, injector);
36
+ return FactoryUtil.createServiceInstanceByType(serviceType, injector);
52
37
  }
53
- export function createServiceInstance(serviceType, injector) {
54
- if (!Util.isDefined(serviceType) || ServiceType.OntimizeEE === serviceType) {
55
- return new OntimizeEEService(injector);
56
- }
57
- if (ServiceType.Ontimize === serviceType) {
58
- return new OntimizeService(injector);
59
- }
60
- if (ServiceType.JSONAPI === serviceType) {
61
- return new JSONAPIService(injector);
62
- }
63
- return Util.createServiceInstance(serviceType, injector);
38
+ export function createServiceInstance(serviceClass, injector) {
39
+ return Util.createServiceInstance(serviceClass, injector);
64
40
  }
65
41
  export function fileServiceFactory(injector) {
66
42
  const serviceClass = _getInjectionTokenValue(O_FILE_SERVICE, injector);
@@ -106,15 +82,20 @@ export function exportDataFactory(injector) {
106
82
  }
107
83
  }
108
84
  export function serviceRequestAdapterFactory(injector) {
85
+ const serviceClass = _getInjectionTokenValue(O_REQUEST_ADAPTER, injector);
86
+ const service = Util.createServiceInstance(serviceClass, injector);
87
+ if (Util.isDefined(service)) {
88
+ return service;
89
+ }
109
90
  const config = injector.get(AppConfig).getConfiguration();
110
91
  if (!Util.isDefined(config.serviceType) ||
111
- (ServiceType.OntimizeEE === config.serviceType || ServiceType.Ontimize === config.serviceType)) {
112
- return new OntimizeQueryArgumentsAdapter();
92
+ FactoryUtil.isOntimizeEEService(injector)) {
93
+ return new OntimizeRequestArgumentsAdapter();
113
94
  }
114
- else if (ServiceType.JSONAPI === config.serviceType) {
115
- return new JSONAPIQueryArgumentsAdapter();
95
+ else if (FactoryUtil.isJsonApiService(injector)) {
96
+ return new JSONAPIRequestArgumentsAdapter();
116
97
  }
117
- return new OntimizeQueryArgumentsAdapter();
98
+ return new OntimizeRequestArgumentsAdapter();
118
99
  }
119
100
  export function serviceResponseAdapterFactory(injector) {
120
101
  const serviceClass = _getInjectionTokenValue(O_RESPONSE_ADAPTER, injector);
@@ -124,10 +105,10 @@ export function serviceResponseAdapterFactory(injector) {
124
105
  }
125
106
  const config = injector.get(AppConfig).getConfiguration();
126
107
  if (!Util.isDefined(config.serviceType) ||
127
- (ServiceType.OntimizeEE === config.serviceType || ServiceType.Ontimize === config.serviceType)) {
108
+ (FactoryUtil.isOntimizeEEService(injector))) {
128
109
  return new OntimizeServiceResponseAdapter();
129
110
  }
130
- else if (ServiceType.JSONAPI === config.serviceType) {
111
+ else if (FactoryUtil.isJsonApiService(injector)) {
131
112
  return new JSONAPIServiceResponseAdapter();
132
113
  }
133
114
  return new JSONAPIServiceResponseAdapter();
@@ -149,10 +130,10 @@ export function permissionsServiceFactory(injector) {
149
130
  }
150
131
  export function preferencesServiceFactory(injector) {
151
132
  const config = injector.get(AppConfig).getConfiguration();
152
- if (!Util.isDefined(config.serviceType) || (ServiceType.OntimizeEE === config.serviceType || ServiceType.Ontimize === config.serviceType)) {
133
+ if (!Util.isDefined(config.serviceType) || FactoryUtil.isOntimizeEEService(injector)) {
153
134
  return new OntimizePreferencesService(injector);
154
135
  }
155
- else if (ServiceType.JSONAPI === config.serviceType) {
136
+ else if (FactoryUtil.isJsonApiService(injector)) {
156
137
  return new JSONAPIPreferencesService(injector);
157
138
  }
158
139
  return new JSONAPIPreferencesService(injector);
@@ -171,19 +152,10 @@ export const OntimizeExportServiceProvider = { provide: OntimizeExportService, u
171
152
  export const OntimizeAuthServiceProvider = { provide: AuthService, useFactory: authServiceFactory, deps: [Injector] };
172
153
  export const ComponentStateServiceProvider = { provide: AbstractComponentStateService, useFactory: componentStateFactory, deps: [Injector] };
173
154
  export const ExportDataServiceProvider = { provide: OntimizeExportDataProviderService, useFactory: exportDataFactory, deps: [Injector] };
174
- export const ServiceRequestAdapter = { provide: OntimizeQueryArgumentsAdapter, useFactory: serviceRequestAdapterFactory, deps: [Injector] };
155
+ export const ServiceRequestAdapter = { provide: OntimizeRequestArgumentsAdapter, useFactory: serviceRequestAdapterFactory, deps: [Injector] };
175
156
  export const ServiceResponseAdapter = { provide: OntimizeServiceResponseAdapter, useFactory: serviceResponseAdapterFactory, deps: [Injector] };
176
157
  export const NameConventionProvider = { provide: NameConvention, useFactory: nameConventionServiceFactory, deps: [Injector] };
177
158
  export const OntimizeLocalStorageServiceProvider = { provide: LocalStorageService, useFactory: localStorageServiceFactory, deps: [Injector] };
178
- export function _getInjectionTokenValue(token, injector) {
179
- let service;
180
- try {
181
- service = injector.get(token);
182
- }
183
- catch (e) {
184
- }
185
- return service;
186
- }
187
159
  export function nameConventionServiceFactory(injector) {
188
160
  const config = injector.get(AppConfig).getConfiguration();
189
161
  if (config?.nameConvention === 'lower') {
@@ -194,4 +166,4 @@ export function nameConventionServiceFactory(injector) {
194
166
  }
195
167
  return new NameConvention();
196
168
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFVakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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SW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IElDaGFydE9uRGVtYW5kU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hhcnQtb24tZGVtYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRXhwb3J0RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtZGF0YS1wcm92aWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4cG9ydC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpbGUtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGVybWlzc2lvbnMtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJlZmVyZWNlcy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LW9uLWRlbWFuZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS1hZGFwdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPTWF0RXJyb3JPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvby1tYXQtZXJyb3IudHlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL3NlcnZpY2UtdHlwZS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi9iYXNlLXNlcnZpY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS1zZXJ2aWNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2UgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uTG93ZXIgfSBmcm9tICcuL25hbWUtY29udmVudGlvbi9uYW1lLWNvbnZlbnRpb24tbG93ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvblVwcGVyIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLXVwcGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9uYW1lLWNvbnZlbnRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVBdXRoU2VydmljZSB9IGZyb20gJy4vby1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Vycm9yRGlhbG9nTWFuYWdlciB9IGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZWUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUXVlcnlBcmd1bWVudCB9IGZyb20gJy4vcXVlcnktYXJndW1lbnRzL2Jhc2UtcXVlcnktYXJndW1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3F1ZXJ5LWFyZ3VtZW50cy9qc29uYXBpLXF1ZXJ5LWFyZ3VtZW50cy5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyIH0gZnJvbSAnLi9xdWVyeS1hcmd1bWVudHMvb250aW1pemUtcXVlcnktYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sb2NhbC1zZXJ2aWNlLmludGVyZmFjZSc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIElOSkVDVElPTiBUT0tFTlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBkYXRhIHNlcnZpY2UgYE9udGltaXplU2VydmljZWAgb3IgYE9udGltaXplRUVTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fREFUQV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuKCdPbnRpbWl6ZSBkYXRhIHNlcnZpY2UnKTtcblxuZXhwb3J0IGNvbnN0IE9fUkVTUE9OU0VfQURBUFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPj4oJ1NlcnZpY2UgcmVzcG9uc2UgYWRhcHRlcicpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIHRyYW5zbGF0ZSBzZXJ2aWNlIGBPVHJhbnNsYXRlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX1RSQU5TTEFURV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuKCdUcmFuc2xhdGUgc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGZpbGUgc2VydmljZSBgT250aW1pemVGaWxlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0ZJTEVfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRmlsZVNlcnZpY2U+KCdGaWxlIHVwbG9hZGVyIHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBsb2NhbHN0b3JhZ2Ugc2VydmljZSBgTG9jYWxTdG9yYWdlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0xPQ0FMU1RPUkFHRV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElMb2NhbFN0b3JhZ2VTZXJ2aWNlPignTG9jYWwgc3RvcmFnZSBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgZXhwb3J0YXRpb24gc2VydmljZSBgT250aW1pemVFeHBvcnRTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fRVhQT1JUX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUV4cG9ydFNlcnZpY2U+KCdFeHBvcnQgc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIHBlcm1pc3Npb24gc2VydmljZSBgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2Ugb3IgT250aW1pemVFRVBlcm1pc3Npb25zU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX1BFUk1JU1NJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUGVybWlzc2lvbnNTZXJ2aWNlPignUGVybWlzc2lvbiBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZSBgQXV0aFNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19BVVRIX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aFNlcnZpY2U+KCdBdXRoZW50aWNhdGlvbiBzZXJ2aWNlJyk7XG5cbi8qKlxuKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBjb21wb25lbnQgc3RhdGUgc2VydmljZSBgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZWAuXG4qL1xuZXhwb3J0IGNvbnN0IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZT4oJ0NvbXBvbmVudCBzdGF0ZSBzZXJ2aWNlJyk7XG5cblxuLyoqXG4qIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGNvbXBvbmVudCBzdGF0ZSBzZXJ2aWNlIGBEZWZhdWx0Q29tcG9uZW50U3RhdGVTZXJ2aWNlYC5cbiovXG5leHBvcnQgY29uc3QgT19DSEFSVF9PTl9ERU1BTkRfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhcnRPbkRlbWFuZFNlcnZpY2U+KCdDaGFydCBvbiBkZW1hbmQgc2VydmljZScpO1xuXG5leHBvcnQgY29uc3QgT19SRVBPUlRfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUmVwb3J0U2VydmljZT4oJ1JlcG9ydCBzZXJ2aWNlJyk7XG5cbmV4cG9ydCBjb25zdCBPX0VSUk9SX0RJQUxPR19NQU5BR0VSID0gbmV3IEluamVjdGlvblRva2VuPE9FcnJvckRpYWxvZ01hbmFnZXI+KCdFcnJvciBkaWFsb2cgbWFuYWdlcicpO1xuXG5leHBvcnQgY29uc3QgT19FWFBPUlRfREFUQV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElFeHBvcnREYXRhUHJvdmlkZXI+KCdFeHBvcnQgZGF0YSBwcm92aWRlcicpO1xuXG5leHBvcnQgY29uc3QgT19NQVRfRVJST1JfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPTWF0RXJyb3JPcHRpb25zPignby1tYXQtZXJyb3Itb3B0aW9ucycpO1xuXG5leHBvcnQgY29uc3QgT19GT1JNX01FU1NBR0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignT250aW1pemUgby1mb3JtIG1lc3NhZ2Ugc2VydmljZScpO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRkFDVE9SSUVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGF0YSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fREFUQV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBjb25zdCBzZXJ2aWNlVHlwZSA9IGNvbmZpZy5zZXJ2aWNlVHlwZTtcbiAgcmV0dXJuIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHNlcnZpY2VUeXBlKSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZUVFID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUVFU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgaWYgKFNlcnZpY2VUeXBlLkpTT05BUEkgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IEpTT05BUElTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlLCBpbmplY3Rvcik7XG5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBmaWxlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUZpbGVTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19GSUxFX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IE9udGltaXplRmlsZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGxvY2FsIHN0b3JhZ2Ugc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19MT0NBTFNUT1JBR0VfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgTG9jYWxTdG9yYWdlU2VydmljZShpbmplY3Rvcik7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGV4cG9ydGF0aW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRXhwb3J0U2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRVhQT1JUX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKHR5cGVvZiAoY29uZmlnLmV4cG9ydFNlcnZpY2VUeXBlKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnRTZXJ2aWNlM1goaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0U2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICB9XG4gIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShjb25maWcuZXhwb3J0U2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydERhdGFGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElFeHBvcnREYXRhUHJvdmlkZXIge1xuICBjb25zdCBwcm92aWRlciA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRVhQT1JUX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UocHJvdmlkZXIsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICAgIGlmICh0eXBlb2YgKGNvbmZpZy5leHBvcnRDb25maWd1cmF0aW9uKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UzWChpbmplY3Rvcik7XG4gICAgfVxuICB9XG5cbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElCYXNlUXVlcnlBcmd1bWVudCB7XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8XG4gICAgKFNlcnZpY2VUeXBlLk9udGltaXplRUUgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfVxuICByZXR1cm4gbmV3IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPiB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVTUE9OU0VfQURBUFRFUiwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG5cbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHxcbiAgICAoU2VydmljZVR5cGUuT250aW1pemVFRSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlIHx8IFNlcnZpY2VUeXBlLk9udGltaXplID09PSBjb25maWcuc2VydmljZVR5cGUpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHBlcm1pc3Npb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcm1pc3Npb25zU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSVBlcm1pc3Npb25zU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUEVSTUlTU0lPTl9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHx8ICdPbnRpbWl6ZUVFUGVybWlzc2lvbnMnID09PSBjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVFRVBlcm1pc3Npb25zU2VydmljZShpbmplY3Rvcik7XG4gIH0gZWxzZSBpZiAoJ09udGltaXplUGVybWlzc2lvbnMnID09PSBjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVmZXJlbmNlc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQcmVmZXJlbmNlc1NlcnZpY2Uge1xuXG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHwgKFNlcnZpY2VUeXBlLk9udGltaXplRUUgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKFNlcnZpY2VUeXBlLkpTT05BUEkgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXV0aFNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IEF1dGhTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19BVVRIX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IE9udGltaXplQXV0aFNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50U3RhdGVGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IEFic3RyYWN0Q29tcG9uZW50U3RhdGVTZXJ2aWNlPGFueSwgYW55PiB7XG4gIGNvbnN0IHNlcnZpY2UgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBST1ZJREVSUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVzaW5nIHRoZSBzYW1lIHByb3ZpZGVyIG11bHRpcGxlIHRpbWVzIGFjY3Jvc3MgdGhlIHByb2plY3QgcHJvZHVjZXMgbmFtZXNwYWNlcyBjb25mbGljdHMgd2hlblxuICogYnVpbGRpbmcgd2l0aCBuZy1wYWNrYWdyLCBzbyB3ZSByZXVzZWQgdGhlIHByb3ZpZGVycyBkZWZpbmVkIGhlcmUuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVTZXJ2aWNlLCB1c2VGYWN0b3J5OiBkYXRhU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcblxuZXhwb3J0IGNvbnN0IE9udGltaXplRXhwb3J0U2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UsIHVzZUZhY3Rvcnk6IGV4cG9ydFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUF1dGhTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IEF1dGhTZXJ2aWNlLCB1c2VGYWN0b3J5OiBhdXRoU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcblxuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSwgdXNlRmFjdG9yeTogY29tcG9uZW50U3RhdGVGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBFeHBvcnREYXRhU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UsIHVzZUZhY3Rvcnk6IGV4cG9ydERhdGFGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVxdWVzdEFkYXB0ZXIgPSB7IHByb3ZpZGU6IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIsIHVzZUZhY3Rvcnk6IHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBOYW1lQ29udmVudGlvblByb3ZpZGVyID0geyBwcm92aWRlOiBOYW1lQ29udmVudGlvbiwgdXNlRmFjdG9yeTogbmFtZUNvbnZlbnRpb25TZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuZXhwb3J0IGNvbnN0IE9udGltaXplTG9jYWxTdG9yYWdlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVXRpbGl0eSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgaW5qZWN0aW9uIHRva2VuXG4gKiBAcGFyYW0gdG9rZW4gdGhlIGluamVjdGlvbiB0b2tlblxuICogQHBhcmFtIGluamVjdG9yIHRoZSBpbmplY3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gX2dldEluamVjdGlvblRva2VuVmFsdWU8VD4odG9rZW46IEluamVjdGlvblRva2VuPFQ+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBUIHtcbiAgbGV0IHNlcnZpY2U6IFQ7XG4gIHRyeSB7XG4gICAgc2VydmljZSA9IGluamVjdG9yLmdldCh0b2tlbik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBObyB2YWx1ZSBwcm92aWRlZCBmb3IgdGhlIGluamVjdGlvbiB0b2tlblxuICB9XG4gIHJldHVybiBzZXJ2aWNlO1xufVxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgcHJlZmVyZW5jZXMgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVDb252ZW50aW9uU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSU5hbWVDb252ZW50aW9uIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKGNvbmZpZz8ubmFtZUNvbnZlbnRpb24gPT09ICdsb3dlcicpIHtcbiAgICByZXR1cm4gbmV3IE5hbWVDb252ZW50aW9uTG93ZXIoKTtcbiAgfSBlbHNlIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAndXBwZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvblVwcGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbigpO1xufVxuXG5cblxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFTN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQ0FB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LEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzlILE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBSzlJLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFrQjtJQUU3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFMUQsSUFBSSxNQUFNLEVBQUUsY0FBYyxLQUFLLE9BQU8sRUFBRTtRQUN0QyxPQUFPLElBQUksbUJBQW1CLEVBQUUsQ0FBQztLQUNsQztTQUFNLElBQUksTUFBTSxFQUFFLGNBQWMsS0FBSyxPQUFPLEVBQUU7UUFDN0MsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7S0FDbEM7SUFDRCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7XG4gIE9fQVVUSF9TRVJWSUNFLFxuICBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLFxuICBPX0RBVEFfU0VSVklDRSxcbiAgT19FWFBPUlRfREFUQV9TRVJWSUNFLFxuICBPX0VYUE9SVF9TRVJWSUNFLFxuICBPX0ZJTEVfU0VSVklDRSxcbiAgT19MT0NBTFNUT1JBR0VfU0VSVklDRSxcbiAgT19QRVJNSVNTSU9OX1NFUlZJQ0UsXG4gIE9fUkVTUE9OU0VfQURBUFRFUixcbiAgT19SRVFVRVNUX0FEQVBURVJcbn0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBJRXhwb3J0RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtZGF0YS1wcm92aWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4cG9ydC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpbGUtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUxvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2xvY2FsLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElOYW1lQ29udmVudGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbmFtZS1jb252ZW50aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wZXJtaXNzaW9ucy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wcmVmZXJlY2VzLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLWFkYXB0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlIH0gZnJvbSAnLi4vdXRpbC9pbmplY3Rpb24tdG9rZW4udXRpbHMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuL2Jhc2Utc2VydmljZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9qc29uYXBpL2pzb25hcGktcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXNlcnZpY2UtcmVzcG9uc2UuYWRhcHRlcic7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmFtZUNvbnZlbnRpb25Mb3dlciB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi1sb3dlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uVXBwZXIgfSBmcm9tICcuL25hbWUtY29udmVudGlvbi9uYW1lLWNvbnZlbnRpb24tdXBwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvbiB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplQXV0aFNlcnZpY2UgfSBmcm9tICcuL28tYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUmVxdWVzdEFyZ3VtZW50IH0gZnJvbSAnLi9yZXF1ZXN0LWFkYXB0ZXIvYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBKU09OQVBJUmVxdWVzdEFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3JlcXVlc3QtYWRhcHRlci9qc29uYXBpLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgT250aW1pemVSZXF1ZXN0QXJndW1lbnRzQWRhcHRlciB9IGZyb20gJy4vcmVxdWVzdC1hZGFwdGVyL29udGltaXplLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmFjdG9yeVV0aWwgfSBmcm9tICcuLi91dGlsL2ZhY3RvcnkudXRpbCc7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZBQ1RPUklFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhdGEgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgY29uc3Qgc2VydmljZVR5cGUgPSBjb25maWcuc2VydmljZVR5cGU7XG4gIHJldHVybiBGYWN0b3J5VXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2VCeVR5cGUoc2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3M6IGFueSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGZpbGUgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRmlsZVNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0ZJTEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgT250aW1pemVGaWxlU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgbG9jYWwgc3RvcmFnZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUxvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0xPQ0FMU1RPUkFHRV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBMb2NhbFN0b3JhZ2VTZXJ2aWNlKGluamVjdG9yKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZXhwb3J0YXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydFNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElFeHBvcnRTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19FWFBPUlRfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAodHlwZW9mIChjb25maWcuZXhwb3J0U2VydmljZVR5cGUpID09PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChjb25maWcuZXhwb3J0Q29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWChpbmplY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnRTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKGNvbmZpZy5leHBvcnRTZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0RGF0YUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUV4cG9ydERhdGFQcm92aWRlciB7XG4gIGNvbnN0IHByb3ZpZGVyID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19FWFBPUlRfREFUQV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShwcm92aWRlciwgaW5qZWN0b3IpO1xuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gICAgaWYgKHR5cGVvZiAoY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24pID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYKGluamVjdG9yKTtcbiAgICB9XG4gIH1cblxufVxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VSZXF1ZXN0QWRhcHRlckZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUJhc2VSZXF1ZXN0QXJndW1lbnQge1xuXG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVRVUVTVF9BREFQVEVSLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcblxuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8XG4gICAgRmFjdG9yeVV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUmVxdWVzdEFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChGYWN0b3J5VXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBPbnRpbWl6ZVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPiB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVTUE9OU0VfQURBUFRFUiwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG5cbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHxcbiAgICAoRmFjdG9yeVV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChGYWN0b3J5VXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuXG4gICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNzaW9uc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQZXJtaXNzaW9uc1NlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1BFUk1JU1NJT05fU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5wZXJtaXNzaW9uc1NlcnZpY2VUeXBlKSB8fCAnT250aW1pemVFRVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKCdPbnRpbWl6ZVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZmVyZW5jZXNTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJUHJlZmVyZW5jZXNTZXJ2aWNlIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8IEZhY3RvcnlVdGlsLmlzT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG4gIH0gZWxzZSBpZiAoRmFjdG9yeVV0aWwuaXNKc29uQXBpU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBdXRoU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fQVVUSF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUF1dGhTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFN0YXRlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxhbnksIGFueT4ge1xuICBjb25zdCBzZXJ2aWNlID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19DT01QT05FTlRfU1RBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQUk9WSURFUlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVc2luZyB0aGUgc2FtZSBwcm92aWRlciBtdWx0aXBsZSB0aW1lcyBhY2Nyb3NzIHRoZSBwcm9qZWN0IHByb2R1Y2VzIG5hbWVzcGFjZXMgY29uZmxpY3RzIHdoZW5cbiAqIGJ1aWxkaW5nIHdpdGggbmctcGFja2Fnciwgc28gd2UgcmV1c2VkIHRoZSBwcm92aWRlcnMgZGVmaW5lZCBoZXJlLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IE9udGltaXplU2VydmljZSwgdXNlRmFjdG9yeTogZGF0YVNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUV4cG9ydFNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnRTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnRTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgT250aW1pemVBdXRoU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBdXRoU2VydmljZSwgdXNlRmFjdG9yeTogYXV0aFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIHVzZUZhY3Rvcnk6IGNvbXBvbmVudFN0YXRlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgRXhwb3J0RGF0YVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnREYXRhRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlcXVlc3RBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIsIHVzZUZhY3Rvcnk6IHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBOYW1lQ29udmVudGlvblByb3ZpZGVyID0geyBwcm92aWRlOiBOYW1lQ29udmVudGlvbiwgdXNlRmFjdG9yeTogbmFtZUNvbnZlbnRpb25TZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuZXhwb3J0IGNvbnN0IE9udGltaXplTG9jYWxTdG9yYWdlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lQ29udmVudGlvblNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElOYW1lQ29udmVudGlvbiB7XG5cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAnbG93ZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbkxvd2VyKCk7XG4gIH0gZWxzZSBpZiAoY29uZmlnPy5uYW1lQ29udmVudGlvbiA9PT0gJ3VwcGVyJykge1xuICAgIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb25VcHBlcigpO1xuICB9XG4gIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb24oKTtcbn1cblxuXG5cbiJdfQ==
@@ -32,7 +32,8 @@ export * from './translate/index';
32
32
  export * from './ontimize-export-data-provider-3x.service';
33
33
  export * from './ontimize-export-data-provider.service';
34
34
  export * from './appearance.service';
35
- export * from './query-arguments/index';
35
+ export * from './request-adapter/index';
36
36
  export * from './name-convention/index';
37
37
  export * from './pagination-context.service';
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHAtY29uZmlnLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwLW1lbnUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtZ3VhcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2Utc2VydmljZS1yZXNwb25zZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2Utc2VydmljZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbmN5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZhY3Rvcmllcyc7XG5leHBvcnQgKiBmcm9tICcuL2ljb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvZ2luLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWF1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZXJyb3ItZGlhbG9nLW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYnJlYWRjcnVtYi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLWxheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLW1vZHVsZXMtaW5mby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby11c2VyLWluZm8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWljb24tcmVnaXN0cnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vanNvbmFwaS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlci9vLXNlcnZpY2UtcmVzcG9uc2UucGFyc2VyJztcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbnMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdGUtY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZS1jYW4tYWN0aXZhdGUtY2hpbGQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NuYWNrYmFyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWV4cG9ydC1kYXRhLXByb3ZpZGVyLTN4LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwZWFyYW5jZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktYXJndW1lbnRzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbmFtZS1jb252ZW50aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xuIl19
38
+ export * from './base-data-service.class';
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLXJlc3BvbnNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFjdG9yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9naW4tc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9tZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1icmVhZGNydW1iLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbW9kdWxlcy1pbmZvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXVzZXItaW5mby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uYXBpL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2VyL28tc2VydmljZS1yZXNwb25zZS5wYXJzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlLWNhbi1hY3RpdmF0ZS1jaGlsZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXItM3guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWV4cG9ydC1kYXRhLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBlYXJhbmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0LWFkYXB0ZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcbiJdfQ==
@@ -1,36 +1,38 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { JSONAPIService } from './jsonapi.service';
3
+ import { OPreferenceMappingUtils } from '../../util/preference-mapping-util';
3
4
  import * as i0 from "@angular/core";
4
5
  export class JSONAPIPreferencesService extends JSONAPIService {
5
6
  configureService(config) {
6
7
  super.configureService(config);
7
- this.path = config.path || '/preferences';
8
+ this.path = config['preferences']?.path ? config['preferences']?.path : '/Preference';
9
+ }
10
+ parseObjectToPreference(preferencesparams) {
11
+ preferencesparams['preferenceparameters'] = btoa(JSON.stringify(preferencesparams['preferenceparameters']));
12
+ preferencesparams['preferenceentity'] = preferencesparams['preferenceentity'] + '-' + preferencesparams['preferenceservice'];
13
+ preferencesparams['preferencetype'] = preferencesparams['preferencetype'] === 'REPORT' ? 0 : 1;
14
+ delete preferencesparams['preferenceservice'];
15
+ return preferencesparams;
8
16
  }
9
17
  saveAsPreferences(preferencesparams) {
10
18
  preferencesparams = this.parseObjectToPreference(preferencesparams);
19
+ preferencesparams = OPreferenceMappingUtils.jsonApiPreferencesDataMapping(preferencesparams);
11
20
  return super.insert(preferencesparams, 'Preference');
12
21
  }
13
22
  savePreferences(id, preferencesparams) {
14
23
  preferencesparams = this.parseObjectToPreference(preferencesparams);
15
- return super.update({ id: id }, preferencesparams, 'Preference');
16
- }
17
- parseObjectToPreference(preferencesparams) {
18
- preferencesparams['preferencepreferences'] = btoa(JSON.stringify(preferencesparams['preferenceparameters']));
19
- preferencesparams['preferenceentity'] = preferencesparams['preferenceentity'] + '-' + preferencesparams['preferenceservice'];
20
- preferencesparams['preferencetype'] = preferencesparams['preferencetype'] === 'REPORT' ? 0 : 1;
21
- delete preferencesparams['preferenceparameters'];
22
- delete preferencesparams['preferenceservice'];
23
- return preferencesparams;
24
+ preferencesparams = OPreferenceMappingUtils.jsonApiPreferencesDataMapping(preferencesparams);
25
+ return super.update(id.toString(), preferencesparams, 'Preference');
24
26
  }
25
27
  getPreferences(entity, service, type) {
26
28
  let queryParams = { fields: {}, filter: {} };
27
- let fields = { preference: 'preferenceid,preferencename,preferencedescription,preferencepreferences,preferenceentity,preferencetype' };
28
- queryParams.fields['Preference'] = this.nameConvention.parseColumnsToNameConventionForJSONAPI(fields);
29
+ let fields = { preference: 'PREFERENCEID,PREFERENCENAME,PREFERENCEDESCRIPTION,PREFERENCEPREFERENCES,PREFERENCEENTITY,PREFERENCETYPE' };
30
+ queryParams.fields['Preference'] = fields.preference;
29
31
  queryParams.filter = { preferenceentity: entity + '-' + service, preferencetype: (type === 'REPORT' ? 0 : 1) };
30
32
  return super.query(queryParams);
31
33
  }
32
34
  deletePreferences(id) {
33
- const url = this.urlBase + '/Preference/' + id;
35
+ const url = `${this.urlBase}${this.path}/${id}`;
34
36
  return this.doRequest({
35
37
  method: 'DELETE',
36
38
  url: url
@@ -42,4 +44,4 @@ JSONAPIPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
42
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIPreferencesService, decorators: [{
43
45
  type: Injectable
44
46
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUluRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUVwRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDO0lBQzVDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxlQUFlLENBQUMsRUFBVSxFQUFFLGlCQUF5QjtRQUMxRCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVTLHVCQUF1QixDQUFDLGlCQUF5QjtRQUN6RCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM3SCxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRixPQUFPLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakQsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlDLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQVk7UUFDakUsSUFBSSxXQUFXLEdBQTBCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFcEUsSUFBSSxNQUFNLEdBQUcsRUFBRSxVQUFVLEVBQUUseUdBQXlHLEVBQUUsQ0FBQztRQUN2SSxXQUFXLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsc0NBQXNDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEcsV0FBVyxDQUFDLE1BQU0sR0FBRyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUdNLGlCQUFpQixDQUFDLEVBQVc7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHLEVBQUUsR0FBRztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQTFDVSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBKU09OQVBJUXVlcnlQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi90eXBlcy9qc29uLXF1ZXJ5LXBhcmFtZXRlci50eXBlJztcbmltcG9ydCB7IEpTT05BUElTZXJ2aWNlIH0gZnJvbSAnLi9qc29uYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9zZXJ2aWNlLXR5cGUudHlwZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlIGV4dGVuZHMgSlNPTkFQSVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMucGF0aCA9IGNvbmZpZy5wYXRoIHx8ICcvcHJlZmVyZW5jZXMnO1xuICB9XG5cbiAgcHVibGljIHNhdmVBc1ByZWZlcmVuY2VzKHByZWZlcmVuY2VzcGFyYW1zOiBvYmplY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHByZWZlcmVuY2VzcGFyYW1zID0gdGhpcy5wYXJzZU9iamVjdFRvUHJlZmVyZW5jZShwcmVmZXJlbmNlc3BhcmFtcyk7XG4gICAgcmV0dXJuIHN1cGVyLmluc2VydChwcmVmZXJlbmNlc3BhcmFtcywgJ1ByZWZlcmVuY2UnKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlUHJlZmVyZW5jZXMoaWQ6IG51bWJlciwgcHJlZmVyZW5jZXNwYXJhbXM6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXMgPSB0aGlzLnBhcnNlT2JqZWN0VG9QcmVmZXJlbmNlKHByZWZlcmVuY2VzcGFyYW1zKTtcbiAgICByZXR1cm4gc3VwZXIudXBkYXRlKHsgaWQ6IGlkIH0sIHByZWZlcmVuY2VzcGFyYW1zLCAnUHJlZmVyZW5jZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlT2JqZWN0VG9QcmVmZXJlbmNlKHByZWZlcmVuY2VzcGFyYW1zOiBvYmplY3QpIHtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXByZWZlcmVuY2VzJ10gPSBidG9hKEpTT04uc3RyaW5naWZ5KHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlcGFyYW1ldGVycyddKSk7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VlbnRpdHknXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlZW50aXR5J10gKyAnLScgKyBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXNlcnZpY2UnXTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXR5cGUnXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNldHlwZSddID09PSAnUkVQT1JUJyA/IDAgOiAxO1xuICAgIGRlbGV0ZSBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXBhcmFtZXRlcnMnXTtcbiAgICBkZWxldGUgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VzZXJ2aWNlJ107XG4gICAgcmV0dXJuIHByZWZlcmVuY2VzcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldFByZWZlcmVuY2VzKGVudGl0eTogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIgPSB7IGZpZWxkczoge30sIGZpbHRlcjoge30gfTtcblxuICAgIGxldCBmaWVsZHMgPSB7IHByZWZlcmVuY2U6ICdwcmVmZXJlbmNlaWQscHJlZmVyZW5jZW5hbWUscHJlZmVyZW5jZWRlc2NyaXB0aW9uLHByZWZlcmVuY2VwcmVmZXJlbmNlcyxwcmVmZXJlbmNlZW50aXR5LHByZWZlcmVuY2V0eXBlJyB9O1xuICAgIHF1ZXJ5UGFyYW1zLmZpZWxkc1snUHJlZmVyZW5jZSddID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShmaWVsZHMpO1xuICAgIHF1ZXJ5UGFyYW1zLmZpbHRlciA9IHsgcHJlZmVyZW5jZWVudGl0eTogZW50aXR5ICsgJy0nICsgc2VydmljZSwgcHJlZmVyZW5jZXR5cGU6ICh0eXBlID09PSAnUkVQT1JUJyA/IDAgOiAxKSB9O1xuICAgIHJldHVybiBzdXBlci5xdWVyeShxdWVyeVBhcmFtcyk7XG4gIH1cblxuXG4gIHB1YmxpYyBkZWxldGVQcmVmZXJlbmNlcyhpZD86IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmxCYXNlICsgJy9QcmVmZXJlbmNlLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogdXJsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUc3RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUVwRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUN2RixDQUFDO0lBRVMsdUJBQXVCLENBQUMsaUJBQXlCO1FBQ3pELGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdILGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8saUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5QyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFVLEVBQUUsaUJBQXlCO1FBQzFELGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0YsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUNqRSxJQUFJLFdBQVcsR0FBMEIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVwRSxJQUFJLE1BQU0sR0FBRyxFQUFFLFVBQVUsRUFBRSx5R0FBeUcsRUFBRSxDQUFDO1FBQ3ZJLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNyRCxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9HLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR00saUJBQWlCLENBQUMsRUFBVztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEEzQ1UseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBKU09OQVBJU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlIGV4dGVuZHMgSlNPTkFQSVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMucGF0aCA9IGNvbmZpZ1sncHJlZmVyZW5jZXMnXT8ucGF0aCA/IGNvbmZpZ1sncHJlZmVyZW5jZXMnXT8ucGF0aCA6ICcvUHJlZmVyZW5jZSdcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZU9iamVjdFRvUHJlZmVyZW5jZShwcmVmZXJlbmNlc3BhcmFtczogb2JqZWN0KSB7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VwYXJhbWV0ZXJzJ10gPSBidG9hKEpTT04uc3RyaW5naWZ5KHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlcGFyYW1ldGVycyddKSk7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VlbnRpdHknXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlZW50aXR5J10gKyAnLScgKyBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXNlcnZpY2UnXTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXR5cGUnXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNldHlwZSddID09PSAnUkVQT1JUJyA/IDAgOiAxO1xuICAgIGRlbGV0ZSBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXNlcnZpY2UnXTtcbiAgICByZXR1cm4gcHJlZmVyZW5jZXNwYXJhbXM7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUFzUHJlZmVyZW5jZXMocHJlZmVyZW5jZXNwYXJhbXM6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXMgPSB0aGlzLnBhcnNlT2JqZWN0VG9QcmVmZXJlbmNlKHByZWZlcmVuY2VzcGFyYW1zKTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtcyA9IE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLmpzb25BcGlQcmVmZXJlbmNlc0RhdGFNYXBwaW5nKHByZWZlcmVuY2VzcGFyYW1zKTtcbiAgICByZXR1cm4gc3VwZXIuaW5zZXJ0KHByZWZlcmVuY2VzcGFyYW1zLCAnUHJlZmVyZW5jZScpO1xuICB9XG5cbiAgcHVibGljIHNhdmVQcmVmZXJlbmNlcyhpZDogbnVtYmVyLCBwcmVmZXJlbmNlc3BhcmFtczogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBwcmVmZXJlbmNlc3BhcmFtcyA9IHRoaXMucGFyc2VPYmplY3RUb1ByZWZlcmVuY2UocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHByZWZlcmVuY2VzcGFyYW1zID0gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuanNvbkFwaVByZWZlcmVuY2VzRGF0YU1hcHBpbmcocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHJldHVybiBzdXBlci51cGRhdGUoaWQudG9TdHJpbmcoKSwgcHJlZmVyZW5jZXNwYXJhbXMsICdQcmVmZXJlbmNlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMoZW50aXR5OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgcXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlciA9IHsgZmllbGRzOiB7fSwgZmlsdGVyOiB7fSB9O1xuXG4gICAgbGV0IGZpZWxkcyA9IHsgcHJlZmVyZW5jZTogJ1BSRUZFUkVOQ0VJRCxQUkVGRVJFTkNFTkFNRSxQUkVGRVJFTkNFREVTQ1JJUFRJT04sUFJFRkVSRU5DRVBSRUZFUkVOQ0VTLFBSRUZFUkVOQ0VFTlRJVFksUFJFRkVSRU5DRVRZUEUnIH07XG4gICAgcXVlcnlQYXJhbXMuZmllbGRzWydQcmVmZXJlbmNlJ10gPSBmaWVsZHMucHJlZmVyZW5jZTtcbiAgICBxdWVyeVBhcmFtcy5maWx0ZXIgPSB7IHByZWZlcmVuY2VlbnRpdHk6IGVudGl0eSArICctJyArIHNlcnZpY2UsIHByZWZlcmVuY2V0eXBlOiAodHlwZSA9PT0gJ1JFUE9SVCcgPyAwIDogMSkgfTtcbiAgICByZXR1cm4gc3VwZXIucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cblxuICBwdWJsaWMgZGVsZXRlUHJlZmVyZW5jZXMoaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgdXJsOiB1cmxcbiAgICB9KTtcbiAgfVxufVxuIl19