ontimize-web-ngx 15.6.0-next.6 → 15.6.0-next.7

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.
@@ -1,15 +1,19 @@
1
1
  import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable, Injector } from '@angular/core';
2
+ import { inject, Injectable, Injector } from '@angular/core';
3
3
  import { Observable, share } from 'rxjs';
4
4
  import { AppConfig } from '../../config/app-config';
5
5
  import { Util } from '../../util/util';
6
6
  import { BaseDataService } from '../base-data-service.class';
7
+ import { O_JSON_API_CONFIG } from '../../injection-tokens';
7
8
  import * as i0 from "@angular/core";
8
9
  export class JSONAPIService extends BaseDataService {
9
10
  constructor(injector) {
10
11
  super(injector);
11
12
  this.injector = injector;
13
+ this.DEFAULT_DELIMITER = '_';
12
14
  this.config = this.injector.get(AppConfig);
15
+ const config = inject(O_JSON_API_CONFIG);
16
+ this.delimiter = config?.multipleKeyDelimiter || this.DEFAULT_DELIMITER;
13
17
  }
14
18
  startsession(user, password) {
15
19
  const url = this.urlBase + this._startSessionPath;
@@ -70,6 +74,14 @@ export class JSONAPIService extends BaseDataService {
70
74
  super.configureService(config);
71
75
  this._startSessionPath = this._appConfig.startSessionPath ? this._appConfig.startSessionPath : '/auth/login';
72
76
  this.path = config.path;
77
+ this.delimiter = this.getValidDelimiter(config.multipleKeyDelimiter ?? this.delimiter);
78
+ }
79
+ getValidDelimiter(delimiter) {
80
+ if (!delimiter || !/^[_-]$/.test(delimiter)) {
81
+ console.warn(`Delimiter '${delimiter}' is not valid for URL, defaulting to '${this.DEFAULT_DELIMITER}'.`);
82
+ return this.DEFAULT_DELIMITER;
83
+ }
84
+ return delimiter;
73
85
  }
74
86
  query(queryParams) {
75
87
  queryParams = this.parseNameConventionQueryParams(queryParams);
@@ -88,8 +100,8 @@ export class JSONAPIService extends BaseDataService {
88
100
  }
89
101
  queryById(queryParams) {
90
102
  queryParams = this.parseNameConventionQueryParams(queryParams);
91
- const id = Object.values(queryParams.filter)[0];
92
- const url = `${this.urlBase}${this.path}/${id}?${Util.objectToQueryString(queryParams)}`;
103
+ const serializedId = this.serializeCompositeKey(queryParams.filter);
104
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
93
105
  return this.doRequest({
94
106
  method: 'GET',
95
107
  url: url,
@@ -97,6 +109,29 @@ export class JSONAPIService extends BaseDataService {
97
109
  errorCallBack: this.parseUnsuccessfulQueryResponse,
98
110
  });
99
111
  }
112
+ serializeCompositeKey(keyObj) {
113
+ if (keyObj == null) {
114
+ console.warn('JSONAPI Service: Key object is null or undefined.');
115
+ return '';
116
+ }
117
+ if (typeof keyObj === 'string') {
118
+ if (keyObj.trim() === '') {
119
+ console.warn('JSONAPI Service: Key string is empty.');
120
+ }
121
+ return keyObj;
122
+ }
123
+ const values = Object.values(keyObj);
124
+ if (values.length === 0) {
125
+ console.warn('JSONAPI Service: Key object has no properties.');
126
+ return '';
127
+ }
128
+ for (const val of values) {
129
+ if (val == null) {
130
+ console.warn('JSONAPI Service: Key object contains null or undefined value.');
131
+ }
132
+ }
133
+ return Object.values(keyObj).join(this.delimiter);
134
+ }
100
135
  parseNameConventionQueryParams(queryParams) {
101
136
  if (Util.isDefined(queryParams.fields)) {
102
137
  const entity = Object.keys(queryParams.fields)[0];
@@ -128,9 +163,10 @@ export class JSONAPIService extends BaseDataService {
128
163
  });
129
164
  }
130
165
  update(id, attributes, type) {
131
- const url = `${this.urlBase}${this.path}/${id}`;
166
+ const serializedId = this.serializeCompositeKey(id);
167
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
132
168
  attributes = this.nameConvention.parseDataToNameConvention(attributes);
133
- let data = { ...{ attributes: attributes }, ...{ id: id }, ...{ type: type } };
169
+ let data = { ...{ attributes: attributes }, ...{ id: serializedId }, ...{ type: type } };
134
170
  const body = JSON.stringify({
135
171
  data: data
136
172
  });
@@ -143,7 +179,8 @@ export class JSONAPIService extends BaseDataService {
143
179
  });
144
180
  }
145
181
  delete(id) {
146
- const url = `${this.urlBase}${this.path}/${id}`;
182
+ const serializedId = this.serializeCompositeKey(id);
183
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
147
184
  return this.doRequest({
148
185
  method: 'DELETE',
149
186
  url: url,
@@ -157,4 +194,4 @@ JSONAPIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versi
157
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIService, decorators: [{
158
195
  type: Injectable
159
196
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFnQztJQUlsRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQVE7WUFDbkIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQzthQUN0RCxDQUFDO1lBQ0YsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQztRQUNG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QUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBRS9FLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDMUIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsTUFBTSxFQUFFLE9BQU87WUFDZixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLElBQUksQ0FBQyw2QkFBNkI7WUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQywrQkFBK0I7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsZUFBZSxFQUFFLElBQUksQ0FBQyw2QkFBNkI7WUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQywrQkFBK0I7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBcExVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgSUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hdXRoLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElSZXNwb25zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvanNvbmFwaS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IEJhc2VEYXRhU2VydmljZSB9IGZyb20gJy4uL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpTT05BUElTZXJ2aWNlIGV4dGVuZHMgQmFzZURhdGFTZXJ2aWNlPEpTT05BUElSZXNwb25zZT4gaW1wbGVtZW50cyBJQXV0aFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgX3N0YXJ0U2Vzc2lvblBhdGg6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbmZpZzogQXBwQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0c2Vzc2lvbih1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsQmFzZSArIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGg7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0Jhc2ljICcgKyBidG9hKHVzZXIgKyAnOicgKyBwYXNzd29yZClcbiAgICAgIH0pLFxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ1xuICAgIH07XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwgb3B0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHJlc3ApICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycykgJiYgVXRpbC5pc0RlZmluZWQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSW52YWxpZCBzZXNzaW9uSWQgLi4uXG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdJbnZhbGlkIHVzZXIgb3IgcGFzc3dvcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLCBlcnJvcjogKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvcilcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgZW5kc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyAnL2VuZHNlc3Npb24/dXNlcj0nICsgdXNlciArICcmc2Vzc2lvbmlkPScgKyBzZXNzaW9uSWQ7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKF9jbG9zZVNlc3Npb25PYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCkuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3ApID0+IHtcbiAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KHJlc3ApO1xuICAgICAgICAgIH0sIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09IDAgfHwgIWVycm9yLm9rKSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX2Nsb3NlU2Vzc2lvbk9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gc3VwZXIuYnVpbGRIZWFkZXJzKCk7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRTZXNzaW9uSW5mbygpLmlkO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChzZXNzaW9uSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBzZXNzaW9uSWQpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHB1YmxpYyBoYXNzZXNzaW9uKHVzZXI6IHN0cmluZywgc2Vzc2lvbklkOiBhbnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YU9ic2VydmFibGUucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGggPSB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA/IHRoaXMuX2FwcENvbmZpZy5zdGFydFNlc3Npb25QYXRoIDogJy9hdXRoL2xvZ2luJztcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aDtcbiAgfVxuXG4gIHF1ZXJ5KHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5wYXJzZU5hbWVDb252ZW50aW9uUXVlcnlQYXJhbXMocXVlcnlQYXJhbXMpO1xuICAgIHF1ZXJ5UGFyYW1zID0gVXRpbC5vYmplY3RUb1F1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMpID8gJz8nICsgcXVlcnlQYXJhbXMgOiAnJztcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0ke3F1ZXJ5UGFyYW1zU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgYWR2YW5jZWRRdWVyeShxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShxdWVyeVBhcmFtcyk7XG4gIH1cblxuICBxdWVyeUJ5SWQocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG5cbiAgICBxdWVyeVBhcmFtcyA9IHRoaXMucGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcblxuICAgIGNvbnN0IGlkID0gT2JqZWN0LnZhbHVlcyhxdWVyeVBhcmFtcy5maWx0ZXIpWzBdO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2lkfT8ke1V0aWwub2JqZWN0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcyl9YDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuZmllbGRzKSkge1xuICAgICAgY29uc3QgZW50aXR5ID0gT2JqZWN0LmtleXMocXVlcnlQYXJhbXMuZmllbGRzKVswXTtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC52YWx1ZXMocXVlcnlQYXJhbXMuZmllbGRzKVswXTtcbiAgICAgIHF1ZXJ5UGFyYW1zLmZpZWxkc1tlbnRpdHldID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShmaWVsZHMpO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuc29ydCkpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLnNvcnQgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlQ29sdW1uc1RvTmFtZUNvbnZlbnRpb25Gb3JKU09OQVBJKHF1ZXJ5UGFyYW1zLnNvcnQpO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChxdWVyeVBhcmFtcy5maWx0ZXIpKSB7XG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRmlsdGVyVG9OYW1lQ29udmVudGlvbihxdWVyeVBhcmFtcy5maWx0ZXIpO1xuICAgICAgcXVlcnlQYXJhbXMuZmlsdGVyID0geyAuLi5maWx0ZXIgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnlQYXJhbXM7XG4gIH1cblxuICBpbnNlcnQoYXR0cmlidXRlczogb2JqZWN0LCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH1gO1xuXG4gICAgYXR0cmlidXRlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihhdHRyaWJ1dGVzKTtcblxuICAgIGxldCBkYXRhID0geyBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLCB0eXBlOiB0eXBlIH07XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6ICBkYXRhXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsSW5zZXJ0UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsSW5zZXJ0UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBhdHRyaWJ1dGVzOiBvYmplY3QsIHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7aWR9YDtcblxuICAgIGF0dHJpYnV0ZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oYXR0cmlidXRlcyk7XG5cbiAgICBsZXQgZGF0YSA9IHsgLi4ueyBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzIH0sIC4uLnsgaWQ6IGlkIH0sIC4uLnsgdHlwZTogdHlwZSB9IH07XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZGF0YTogZGF0YVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cblxufVxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXBELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSTNELE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZ0M7SUFPbEUsWUFBc0IsUUFBa0I7UUFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREksYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUpyQixzQkFBaUIsR0FBRyxHQUFHLENBQUM7UUFNekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQWlCLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsb0JBQW9CLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQzFFLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUks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QUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDOzsyR0FwT1UsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IElBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXV0aC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBKU09OQVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2pzb25hcGktcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4uLy4uL3R5cGVzL2pzb24tcXVlcnktcGFyYW1ldGVyLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLWRhdGEtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBPX0pTT05fQVBJX0NPTkZJRyB9IGZyb20gJy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgSUpzb25BcGlDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2pzb25hcGktY29uZmlnLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJU2VydmljZSBleHRlbmRzIEJhc2VEYXRhU2VydmljZTxKU09OQVBJUmVzcG9uc2U+IGltcGxlbWVudHMgSUF1dGhTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIF9zdGFydFNlc3Npb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb25maWc6IEFwcENvbmZpZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfREVMSU1JVEVSID0gJ18nO1xuICBkZWxpbWl0ZXI6IHN0cmluZztcblxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdDxJSnNvbkFwaUNvbmZpZz4oT19KU09OX0FQSV9DT05GSUcpO1xuICAgIHRoaXMuZGVsaW1pdGVyID0gY29uZmlnPy5tdWx0aXBsZUtleURlbGltaXRlciB8fCB0aGlzLkRFRkFVTFRfREVMSU1JVEVSO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0c2Vzc2lvbih1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsQmFzZSArIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGg7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0Jhc2ljICcgKyBidG9hKHVzZXIgKyAnOicgKyBwYXNzd29yZClcbiAgICAgIH0pLFxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ1xuICAgIH07XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwgb3B0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHJlc3ApICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycykgJiYgVXRpbC5pc0RlZmluZWQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSW52YWxpZCBzZXNzaW9uSWQgLi4uXG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdJbnZhbGlkIHVzZXIgb3IgcGFzc3dvcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLCBlcnJvcjogKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvcilcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgZW5kc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyAnL2VuZHNlc3Npb24/dXNlcj0nICsgdXNlciArICcmc2Vzc2lvbmlkPScgKyBzZXNzaW9uSWQ7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKF9jbG9zZVNlc3Npb25PYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCkuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3ApID0+IHtcbiAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KHJlc3ApO1xuICAgICAgICAgIH0sIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09IDAgfHwgIWVycm9yLm9rKSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX2Nsb3NlU2Vzc2lvbk9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gc3VwZXIuYnVpbGRIZWFkZXJzKCk7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRTZXNzaW9uSW5mbygpLmlkO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChzZXNzaW9uSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBzZXNzaW9uSWQpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHB1YmxpYyBoYXNzZXNzaW9uKHVzZXI6IHN0cmluZywgc2Vzc2lvbklkOiBhbnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YU9ic2VydmFibGUucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGggPSB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA/IHRoaXMuX2FwcENvbmZpZy5zdGFydFNlc3Npb25QYXRoIDogJy9hdXRoL2xvZ2luJztcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aDtcbiAgICB0aGlzLmRlbGltaXRlciA9IHRoaXMuZ2V0VmFsaWREZWxpbWl0ZXIoY29uZmlnLm11bHRpcGxlS2V5RGVsaW1pdGVyID8/IHRoaXMuZGVsaW1pdGVyKTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGdldFZhbGlkRGVsaW1pdGVyKGRlbGltaXRlcj86IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBpZiAoIWRlbGltaXRlciB8fCAhL15bXy1dJC8udGVzdChkZWxpbWl0ZXIpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYERlbGltaXRlciAnJHtkZWxpbWl0ZXJ9JyBpcyBub3QgdmFsaWQgZm9yIFVSTCwgZGVmYXVsdGluZyB0byAnJHt0aGlzLkRFRkFVTFRfREVMSU1JVEVSfScuYCk7XG4gICAgICByZXR1cm4gdGhpcy5ERUZBVUxUX0RFTElNSVRFUlxuICAgIH1cbiAgICByZXR1cm4gZGVsaW1pdGVyO1xuICB9XG5cbiAgcXVlcnkocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG4gICAgcXVlcnlQYXJhbXMgPSBVdGlsLm9iamVjdFRvUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuXG4gICAgY29uc3QgcXVlcnlQYXJhbXNTdHJpbmcgPSBVdGlsLmlzRGVmaW5lZChxdWVyeVBhcmFtcykgPyAnPycgKyBxdWVyeVBhcmFtcyA6ICcnO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofSR7cXVlcnlQYXJhbXNTdHJpbmd9YDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICBhZHZhbmNlZFF1ZXJ5KHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5KHF1ZXJ5UGFyYW1zKTtcbiAgfVxuXG4gIHF1ZXJ5QnlJZChxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBxdWVyeVBhcmFtcyA9IHRoaXMucGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWRJZCA9IHRoaXMuc2VyaWFsaXplQ29tcG9zaXRlS2V5KHF1ZXJ5UGFyYW1zLmZpbHRlcik7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke3NlcmlhbGl6ZWRJZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgfSk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBzZXJpYWxpemVDb21wb3NpdGVLZXkoa2V5T2JqOiBzdHJpbmcgfCBvYmplY3QpOiBzdHJpbmcge1xuICAgIGlmIChrZXlPYmogPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKCdKU09OQVBJIFNlcnZpY2U6IEtleSBvYmplY3QgaXMgbnVsbCBvciB1bmRlZmluZWQuJyk7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBrZXlPYmogPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoa2V5T2JqLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdKU09OQVBJIFNlcnZpY2U6IEtleSBzdHJpbmcgaXMgZW1wdHkuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4ga2V5T2JqO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoa2V5T2JqKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0pTT05BUEkgU2VydmljZTogS2V5IG9iamVjdCBoYXMgbm8gcHJvcGVydGllcy4nKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHZhbCBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0pTT05BUEkgU2VydmljZTogS2V5IG9iamVjdCBjb250YWlucyBudWxsIG9yIHVuZGVmaW5lZCB2YWx1ZS4nKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGtleU9iaikuam9pbih0aGlzLmRlbGltaXRlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChxdWVyeVBhcmFtcy5maWVsZHMpKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcy5maWVsZHMpWzBdO1xuICAgICAgY29uc3QgZmllbGRzID0gT2JqZWN0LnZhbHVlcyhxdWVyeVBhcmFtcy5maWVsZHMpWzBdO1xuICAgICAgcXVlcnlQYXJhbXMuZmllbGRzW2VudGl0eV0gPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlQ29sdW1uc1RvTmFtZUNvbnZlbnRpb25Gb3JKU09OQVBJKGZpZWxkcyk7XG4gICAgfVxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChxdWVyeVBhcmFtcy5zb3J0KSkge1xuICAgICAgcXVlcnlQYXJhbXMuc29ydCA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvckpTT05BUEkocXVlcnlQYXJhbXMuc29ydCk7XG4gICAgfVxuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLmZpbHRlcikpIHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VGaWx0ZXJUb05hbWVDb252ZW50aW9uKHF1ZXJ5UGFyYW1zLmZpbHRlcik7XG4gICAgICBxdWVyeVBhcmFtcy5maWx0ZXIgPSB7IC4uLmZpbHRlciB9O1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeVBhcmFtcztcbiAgfVxuXG4gIGluc2VydChhdHRyaWJ1dGVzOiBvYmplY3QsIHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofWA7XG5cbiAgICBhdHRyaWJ1dGVzID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF0dHJpYnV0ZXMpO1xuXG4gICAgbGV0IGRhdGEgPSB7IGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsIHR5cGU6IHR5cGUgfTtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZGF0YTogZGF0YVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bEluc2VydFJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bEluc2VydFJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGUoaWQ6IHN0cmluZyB8IG9iamVjdCwgYXR0cmlidXRlczogb2JqZWN0LCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuXG4gICAgY29uc3Qgc2VyaWFsaXplZElkID0gdGhpcy5zZXJpYWxpemVDb21wb3NpdGVLZXkoaWQpO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtzZXJpYWxpemVkSWR9YDtcblxuXG4gICAgYXR0cmlidXRlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihhdHRyaWJ1dGVzKTtcblxuICAgIGxldCBkYXRhID0geyAuLi57IGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMgfSwgLi4ueyBpZDogc2VyaWFsaXplZElkIH0sIC4uLnsgdHlwZTogdHlwZSB9IH07XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZGF0YTogZGF0YVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBvYmplY3QpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRJZCA9IHRoaXMuc2VyaWFsaXplQ29tcG9zaXRlS2V5KGlkKTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7c2VyaWFsaXplZElkfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bERlbGV0ZVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bERlbGV0ZVJlc3BvbnNlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9FeHBvcnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9leHBvcnQtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IE1lbnVSb290SXRlbSB9IGZyb20gJy4vbWVudS1yb290LWl0ZW0udHlwZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLWVlLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9SZW1vdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZW1vdGUtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IFNlcnZpY2VDb25maWdUeXBlIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbmZpZ3VyYXRpb24udHlwZSc7XG5cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLy8gYXBpRW5kcG9pbnQgW3N0cmluZ106IFRoZSBiYXNlIHBhdGggb2YgdGhlIFVSTCB1c2VkIGJ5IGFwcCBzZXJ2aWNlcy5cbiAgYXBpRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgYnVuZGxlPzoge1xuICAgIC8vIGVuZHBvaW50IFtzdHJpbmddOiBUaGUgYmFzZSBwYXRoIG9mIHRoZSBVUkwgdXNlZCBieSBidW5kbGUgc2VydmljZS5cbiAgICBlbmRwb2ludD86IHN0cmluZztcbiAgICAvLyBwYXRoIFtzdHJpbmddOiBUaGUgcGF0aCBvZiB0aGUgVVJMIHRvIHJlbW90ZSBidW5kbGUgbWV0aG9kLlxuICAgIHBhdGg/OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqIFJlbW90ZSBjb25maWd1cmF0aW9uIHN0b3JhZ2UgcGFyYW1ldGVyICovXG4gIHJlbW90ZUNvbmZpZz86IE9SZW1vdGVDb25maWd1cmF0aW9uO1xuXG4gIC8vIHN0YXJ0U2Vzc2lvblBhdGggW3N0cmluZ106IFRoZSBwYXRoIG9mIHRoZSBVUkwgdG8gc3RhcnRzZXNzaW9uIG1ldGhvZC5cbiAgc3RhcnRTZXNzaW9uUGF0aD86IHN0cmluZztcblxuICAvLyB1dWlkIFtzdHJpbmddOiBBcHBsaWNhdGlvbiBpZGVudGlmaWVyLiBJcyB0aGUgdW5pcXVlIHBhY2thZ2UgaWRlbnRpZmllciBvZiB0aGUgYXBwLiBJdCBpcyB1c2VkIHdoZW4gc3RvcmluZyBvciBtYW5hZ2luZyB0ZW1wb3JhbCBkYXRhIHJlbGF0ZWQgd2l0aCB0aGUgYXBwLiBCeSBkZWZhdWx0IGlzIHNldCBhcyAnb250aW1pemUtd2ViLXV1aWQnLi9cbiAgdXVpZD86IHN0cmluZztcblxuICAvLyB0aXRsZSBbc3RyaW5nXTogVGl0bGUgb2YgdGhlIGFwcC4gQnkgZGVmYXVsdCAnT250aW1pemUgV2ViIEFwcCcuXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLy8gbG9jYWxlIFtzdHJpbmddW2VufGVzXTogTGFuZ3VhZ2Ugb2YgdGhlIGFwcGxpY2F0aW9uLiBCeSBkZWZhdWx0ICdlbidcbiAgbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8vIGxvY2FsZSBbc3RyaW5nXTogTG9jYXRpb24gb2YgYXBwbGljYXRpb24gdHJhbnNsYXRpb24gYXNzZXRzLiBEZWZhdWx0ICdhc3NldHMvaTE4bi8nXG4gIGFzc2V0cz86IHtcbiAgICBpMThuPzoge1xuICAgICAgcGF0aD86IHN0cmluZztcbiAgICAgIGV4dGVuc2lvbj86IHN0cmluZztcbiAgICB9XG4gICAgY3NzPzogc3RyaW5nO1xuICAgIGltYWdlcz86IHN0cmluZztcbiAgICBqcz86IHN0cmluZztcbiAgfTtcblxuICBhcHBsaWNhdGlvbkxvY2FsZXM/OiBzdHJpbmdbXTtcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZztcblxuICAvLyBzZXJ2aWNlVHlwZSBbIHVuZGVmaW5lZCB8ICcnIHwgY2xhc3MgXTogVGhlIHNlcnZpY2UgdHlwZSB1c2VkIChPbnRpbWl6ZSBSRVNUIHN0YW5kYXJ0LCBPbnRpbWl6ZSBSRVNUIEpFRSwgSlNPTiBBUEkgb3IgY3VzdG9tIGltcGxlbWVudGF0aW9uKSBpbiB0aGUgd2hvbGUgYXBwbGljYXRpb24uIEJ5IGRlZmF1bHQgJ3VuZGVmaW5lZCcsIHRoYXQgaXMsIE9udGltaXplIFJFU1Qgc3RhbmRhcmQgc2VydmljZS5cbiAgc2VydmljZVR5cGU/OiBhbnk7XG5cbiAgLy8gZXhwb3J0U2VydmljZVR5cGUgWyB1bmRlZmluZWQgfCAnJyB8IGNsYXNzIF06IFRoZSBzZXJ2aWNlIHVzZWQgZm9yIGV4cG9ydGF0aW9uIGluIHRoZSB3aG9sZSBhcHBsaWNhdGlvbi4gSXQgc2hvbGQgaW1wbGVtZW50IGBJRXhwb3J0U2VydmljZWAgaW50ZXJmYWNlLiBCeSBkZWZhdWx0ICd1bmRlZmluZWQnIE9udGltaXplRXhwb3J0U2VydmljZS5cbiAgZXhwb3J0U2VydmljZVR5cGU/OiBhbnk7XG5cbiAgLy8gc2VydmljZXNDb25maWd1cmF0aW9uOiBbT2JqZWN0XTogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIG9mIGFwcGxpY2F0aW9uIHNlcnZpY2VzLlxuICBzZXJ2aWNlc0NvbmZpZ3VyYXRpb24/OiBTZXJ2aWNlQ29uZmlnVHlwZTtcblxuICAvLyBhcHBNZW51Q29uZmlndXJhdGlvbj86IE1lbnVHcm91cFtdO1xuICBhcHBNZW51Q29uZmlndXJhdGlvbj86IE1lbnVSb290SXRlbVtdO1xuXG4gIC8vIHBlcm1pc3Npb25zQ29uZmlndXJhdGlvbiBbT2JqZWN0XTogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIG9mIGFwcGxpY2F0aW9uIHBlcm1pc3Npb25zLlxuICBwZXJtaXNzaW9uc0NvbmZpZ3VyYXRpb24/OiBPbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnIHwgT250aW1pemVFRVBlcm1pc3Npb25zQ29uZmlnO1xuXG4gIC8vIHBlcm1pc3Npb25zU2VydmljZVR5cGUgWyB1bmRlZmluZWQgfCAnJyB8IGNsYXNzIF06IFRoZSBwZXJtaXNzaW9ucyBzZXJ2aWNlIHR5cGUgdXNlZCAoT250aW1pemUgUkVTVCBzdGFuZGFydCAnT250aW1pemVQZXJtaXNzaW9ucycsIE9udGltaXplIFJFU1QgSkVFICdPbnRpbWl6ZUVFUGVybWlzc2lvbnMnIG9yIGN1c3RvbSBpbXBsZW1lbnRhdGlvbikgaW4gdGhlIHdob2xlIGFwcGxpY2F0aW9uLiBCeSBkZWZhdWx0ICdPbnRpbWl6ZVBlcm1pc3Npb25zJy5cbiAgcGVybWlzc2lvbnNTZXJ2aWNlVHlwZT86IGFueTtcblxuICBleHBvcnRDb25maWd1cmF0aW9uPzogT0V4cG9ydENvbmZpZ3VyYXRpb24sXG5cbiAgbmFtZUNvbnZlbnRpb24/OiAndXBwZXInIHwgJ2xvd2VyJyB8ICdkYXRhYmFzZSdcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9FeHBvcnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9leHBvcnQtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IE1lbnVSb290SXRlbSB9IGZyb20gJy4vbWVudS1yb290LWl0ZW0udHlwZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLWVlLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9SZW1vdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZW1vdGUtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IEpTT05BUElTZXJ2aWNlQ29uZmlnVHlwZSwgT250aW1pemVTZXJ2aWNlQ29uZmlnVHlwZSB9IGZyb20gJy4vc2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuXG5leHBvcnQgdHlwZSBDb25maWcgPSB7XG4gIC8vIGFwaUVuZHBvaW50IFtzdHJpbmddOiBUaGUgYmFzZSBwYXRoIG9mIHRoZSBVUkwgdXNlZCBieSBhcHAgc2VydmljZXMuXG4gIGFwaUVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIGJ1bmRsZT86IHtcbiAgICAvLyBlbmRwb2ludCBbc3RyaW5nXTogVGhlIGJhc2UgcGF0aCBvZiB0aGUgVVJMIHVzZWQgYnkgYnVuZGxlIHNlcnZpY2UuXG4gICAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gICAgLy8gcGF0aCBbc3RyaW5nXTogVGhlIHBhdGggb2YgdGhlIFVSTCB0byByZW1vdGUgYnVuZGxlIG1ldGhvZC5cbiAgICBwYXRoPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKiBSZW1vdGUgY29uZmlndXJhdGlvbiBzdG9yYWdlIHBhcmFtZXRlciAqL1xuICByZW1vdGVDb25maWc/OiBPUmVtb3RlQ29uZmlndXJhdGlvbjtcblxuICAvLyBzdGFydFNlc3Npb25QYXRoIFtzdHJpbmddOiBUaGUgcGF0aCBvZiB0aGUgVVJMIHRvIHN0YXJ0c2Vzc2lvbiBtZXRob2QuXG4gIHN0YXJ0U2Vzc2lvblBhdGg/OiBzdHJpbmc7XG5cbiAgLy8gdXVpZCBbc3RyaW5nXTogQXBwbGljYXRpb24gaWRlbnRpZmllci4gSXMgdGhlIHVuaXF1ZSBwYWNrYWdlIGlkZW50aWZpZXIgb2YgdGhlIGFwcC4gSXQgaXMgdXNlZCB3aGVuIHN0b3Jpbmcgb3IgbWFuYWdpbmcgdGVtcG9yYWwgZGF0YSByZWxhdGVkIHdpdGggdGhlIGFwcC4gQnkgZGVmYXVsdCBpcyBzZXQgYXMgJ29udGltaXplLXdlYi11dWlkJy4vXG4gIHV1aWQ/OiBzdHJpbmc7XG5cbiAgLy8gdGl0bGUgW3N0cmluZ106IFRpdGxlIG9mIHRoZSBhcHAuIEJ5IGRlZmF1bHQgJ09udGltaXplIFdlYiBBcHAnLlxuICB0aXRsZTogc3RyaW5nO1xuXG4gIC8vIGxvY2FsZSBbc3RyaW5nXVtlbnxlc106IExhbmd1YWdlIG9mIHRoZSBhcHBsaWNhdGlvbi4gQnkgZGVmYXVsdCAnZW4nXG4gIGxvY2FsZT86IHN0cmluZztcblxuICAvLyBsb2NhbGUgW3N0cmluZ106IExvY2F0aW9uIG9mIGFwcGxpY2F0aW9uIHRyYW5zbGF0aW9uIGFzc2V0cy4gRGVmYXVsdCAnYXNzZXRzL2kxOG4vJ1xuICBhc3NldHM/OiB7XG4gICAgaTE4bj86IHtcbiAgICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgICBleHRlbnNpb24/OiBzdHJpbmc7XG4gICAgfVxuICAgIGNzcz86IHN0cmluZztcbiAgICBpbWFnZXM/OiBzdHJpbmc7XG4gICAganM/OiBzdHJpbmc7XG4gIH07XG5cbiAgYXBwbGljYXRpb25Mb2NhbGVzPzogc3RyaW5nW107XG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmc7XG5cbiAgLy8gc2VydmljZVR5cGUgWyB1bmRlZmluZWQgfCAnJyB8IGNsYXNzIF06IFRoZSBzZXJ2aWNlIHR5cGUgdXNlZCAoT250aW1pemUgUkVTVCBzdGFuZGFydCwgT250aW1pemUgUkVTVCBKRUUsIEpTT04gQVBJIG9yIGN1c3RvbSBpbXBsZW1lbnRhdGlvbikgaW4gdGhlIHdob2xlIGFwcGxpY2F0aW9uLiBCeSBkZWZhdWx0ICd1bmRlZmluZWQnLCB0aGF0IGlzLCBPbnRpbWl6ZSBSRVNUIHN0YW5kYXJkIHNlcnZpY2UuXG4gIHNlcnZpY2VUeXBlPzogYW55O1xuXG4gIC8vIGV4cG9ydFNlcnZpY2VUeXBlIFsgdW5kZWZpbmVkIHwgJycgfCBjbGFzcyBdOiBUaGUgc2VydmljZSB1c2VkIGZvciBleHBvcnRhdGlvbiBpbiB0aGUgd2hvbGUgYXBwbGljYXRpb24uIEl0IHNob2xkIGltcGxlbWVudCBgSUV4cG9ydFNlcnZpY2VgIGludGVyZmFjZS4gQnkgZGVmYXVsdCAndW5kZWZpbmVkJyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UuXG4gIGV4cG9ydFNlcnZpY2VUeXBlPzogYW55O1xuXG4gIC8vIHNlcnZpY2VzQ29uZmlndXJhdGlvbjogW09iamVjdF06IENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiBhcHBsaWNhdGlvbiBzZXJ2aWNlcy5cbiAgc2VydmljZXNDb25maWd1cmF0aW9uPzogT250aW1pemVTZXJ2aWNlQ29uZmlnVHlwZSB8IEpTT05BUElTZXJ2aWNlQ29uZmlnVHlwZTtcblxuICAvLyBhcHBNZW51Q29uZmlndXJhdGlvbj86IE1lbnVHcm91cFtdO1xuICBhcHBNZW51Q29uZmlndXJhdGlvbj86IE1lbnVSb290SXRlbVtdO1xuXG4gIC8vIHBlcm1pc3Npb25zQ29uZmlndXJhdGlvbiBbT2JqZWN0XTogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIG9mIGFwcGxpY2F0aW9uIHBlcm1pc3Npb25zLlxuICBwZXJtaXNzaW9uc0NvbmZpZ3VyYXRpb24/OiBPbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnIHwgT250aW1pemVFRVBlcm1pc3Npb25zQ29uZmlnO1xuXG4gIC8vIHBlcm1pc3Npb25zU2VydmljZVR5cGUgWyB1bmRlZmluZWQgfCAnJyB8IGNsYXNzIF06IFRoZSBwZXJtaXNzaW9ucyBzZXJ2aWNlIHR5cGUgdXNlZCAoT250aW1pemUgUkVTVCBzdGFuZGFydCAnT250aW1pemVQZXJtaXNzaW9ucycsIE9udGltaXplIFJFU1QgSkVFICdPbnRpbWl6ZUVFUGVybWlzc2lvbnMnIG9yIGN1c3RvbSBpbXBsZW1lbnRhdGlvbikgaW4gdGhlIHdob2xlIGFwcGxpY2F0aW9uLiBCeSBkZWZhdWx0ICdPbnRpbWl6ZVBlcm1pc3Npb25zJy5cbiAgcGVybWlzc2lvbnNTZXJ2aWNlVHlwZT86IGFueTtcblxuICBleHBvcnRDb25maWd1cmF0aW9uPzogT0V4cG9ydENvbmZpZ3VyYXRpb24sXG5cbiAgbmFtZUNvbnZlbnRpb24/OiAndXBwZXInIHwgJ2xvd2VyJyB8ICdkYXRhYmFzZSdcbn07XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvc2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHR5cGUgU2VydmljZUNvbmZpZ1R5cGUgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZmlsZU1hbmFnZXJQYXRoPzogc3RyaW5nO1xuICAgIHNlcnZpY2VUeXBlPzogc3RyaW5nO1xuICB9O1xufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvc2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHR5cGUgU2VydmljZUNvbmZpZ1R5cGUgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2VydmljZVR5cGU/OiBzdHJpbmc7XG4gIH07XG59O1xuZXhwb3J0IHR5cGUgT250aW1pemVTZXJ2aWNlQ29uZmlnVHlwZSA9IFNlcnZpY2VDb25maWdUeXBlICYge1xuICBmaWxlTWFuYWdlclBhdGg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBKU09OQVBJU2VydmljZUNvbmZpZ1R5cGUgPSBTZXJ2aWNlQ29uZmlnVHlwZSAmIHtcbiAgZGVsaW1pdGVyPzogc3RyaW5nO1xufTtcblxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, InjectionToken, EventEmitter, Injector, Component, Pipe, Directive, Host, Self, Optional, Input, HostListener, forwardRef, Output, ContentChildren, ChangeDetectorRef, NgModule, ViewChild, ElementRef, ViewEncapsulation, ViewContainerRef, Inject, NgZone, HostBinding, ViewChildren, ChangeDetectionStrategy, inject, CUSTOM_ELEMENTS_SCHEMA, TemplateRef, SkipSelf, isDevMode, ContentChild, Renderer2, APP_INITIALIZER } from '@angular/core';
2
+ import { Injectable, InjectionToken, EventEmitter, Injector, Component, inject, Pipe, Directive, Host, Self, Optional, Input, HostListener, forwardRef, Output, ContentChildren, ChangeDetectorRef, NgModule, ViewChild, ElementRef, ViewEncapsulation, ViewContainerRef, Inject, NgZone, HostBinding, ViewChildren, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, TemplateRef, SkipSelf, isDevMode, ContentChild, Renderer2, APP_INITIALIZER } from '@angular/core';
3
3
  import moment from 'moment';
4
4
  import { Observable, Subject, share as share$1, isObservable, from, of, Subscription, timer, combineLatest, BehaviorSubject, ReplaySubject, concatMap, delay, merge, fromEvent, map as map$1 } from 'rxjs';
5
5
  export { Observable, Subject } from 'rxjs';
@@ -415,6 +415,7 @@ const MAP = {
415
415
  'MESSAGES.CONFIRM_ACTION': 'Are you sure you want to continue?',
416
416
  'MESSAGES.CONFIRM_LOGOUT': 'Are you sure you want to leave?',
417
417
  'MESSAGES.CONFIRM_DELETE': 'Are you sure you want to delete the selected items?',
418
+ 'MESSAGES.CONFIRM_DELETE_ITEM': 'Are you sure you want to delete this item?',
418
419
  'MESSAGES.CONFIRM_CANCEL': 'Are you sure you want to cancel without saving changes?',
419
420
  'MESSAGES.SAVING': 'Saving, please wait...',
420
421
  'MESSAGES.SAVED': 'Saved',
@@ -723,7 +724,8 @@ const MAP = {
723
724
  'MESSAGES.ERROR_FILE_LOAD': 'Error al cargar el archivo.',
724
725
  'MESSAGES.CONFIRM_ACTION': '¿Está seguro de que quiere continuar?',
725
726
  'MESSAGES.CONFIRM_LOGOUT': '¿Está seguro de que quiere salir?',
726
- 'MESSAGES.CONFIRM_DELETE': '¿Está seguro de que quiere borrar los items seleccionados?',
727
+ 'MESSAGES.CONFIRM_DELETE': '¿Está seguro de que quiere borrar los registros seleccionados?',
728
+ 'MESSAGES.CONFIRM_DELETE_ITEM': '¿Está seguro de que quiere borrar este registro?',
727
729
  'MESSAGES.CONFIRM_CANCEL': '¿Está seguro de que quiere cancelar sin guardar los cambios?',
728
730
  'MESSAGES.SAVING': 'Guardando, espere...',
729
731
  'MESSAGES.SAVED': 'Guardado',
@@ -1023,7 +1025,8 @@ const MAP = {
1023
1025
  'MESSAGES.ERROR_FILE_LOAD': 'Erro ao carregar o arquivo.',
1024
1026
  'MESSAGES.CONFIRM_ACTION': 'Tem certeza que quer continuar?',
1025
1027
  'MESSAGES.CONFIRM_LOGOUT': 'Tem certeza que quer sair?',
1026
- 'MESSAGES.CONFIRM_DELETE': 'Tem certeza que quer apagar os ítens selecionados?',
1028
+ 'MESSAGES.CONFIRM_DELETE': 'Tem certeza que quer apagar os ítems selecionados?',
1029
+ 'MESSAGES.CONFIRM_DELETE_ITEM': 'Tem certeza que quer apagar este ítem?',
1027
1030
  'MESSAGES.CONFIRM_CANCEL': 'Tem certeza que quer cancelar sem salvar as alterações?',
1028
1031
  'MESSAGES.SAVING': 'Salvando, aguarde...',
1029
1032
  'MESSAGES.SAVED': 'Salvado',
@@ -1282,6 +1285,7 @@ const O_ERROR_DIALOG_MANAGER = new InjectionToken('Error dialog manager');
1282
1285
  const O_EXPORT_DATA_SERVICE = new InjectionToken('Export data provider');
1283
1286
  const O_MAT_ERROR_OPTIONS = new InjectionToken('o-mat-error-options');
1284
1287
  const O_FORM_MESSAGE_SERVICE = new InjectionToken('Ontimize o-form message service');
1288
+ const O_JSON_API_CONFIG = new InjectionToken('JsonApiConfig');
1285
1289
 
1286
1290
  function _getInjectionTokenValue(token, injector) {
1287
1291
  return injector.get(token, null);
@@ -2030,7 +2034,10 @@ class JSONAPIService extends BaseDataService {
2030
2034
  constructor(injector) {
2031
2035
  super(injector);
2032
2036
  this.injector = injector;
2037
+ this.DEFAULT_DELIMITER = '_';
2033
2038
  this.config = this.injector.get(AppConfig);
2039
+ const config = inject(O_JSON_API_CONFIG);
2040
+ this.delimiter = (config === null || config === void 0 ? void 0 : config.multipleKeyDelimiter) || this.DEFAULT_DELIMITER;
2034
2041
  }
2035
2042
  startsession(user, password) {
2036
2043
  const url = this.urlBase + this._startSessionPath;
@@ -2088,9 +2095,18 @@ class JSONAPIService extends BaseDataService {
2088
2095
  return dataObservable.pipe(share$1());
2089
2096
  }
2090
2097
  configureService(config) {
2098
+ var _a;
2091
2099
  super.configureService(config);
2092
2100
  this._startSessionPath = this._appConfig.startSessionPath ? this._appConfig.startSessionPath : '/auth/login';
2093
2101
  this.path = config.path;
2102
+ this.delimiter = this.getValidDelimiter((_a = config.multipleKeyDelimiter) !== null && _a !== void 0 ? _a : this.delimiter);
2103
+ }
2104
+ getValidDelimiter(delimiter) {
2105
+ if (!delimiter || !/^[_-]$/.test(delimiter)) {
2106
+ console.warn(`Delimiter '${delimiter}' is not valid for URL, defaulting to '${this.DEFAULT_DELIMITER}'.`);
2107
+ return this.DEFAULT_DELIMITER;
2108
+ }
2109
+ return delimiter;
2094
2110
  }
2095
2111
  query(queryParams) {
2096
2112
  queryParams = this.parseNameConventionQueryParams(queryParams);
@@ -2109,8 +2125,8 @@ class JSONAPIService extends BaseDataService {
2109
2125
  }
2110
2126
  queryById(queryParams) {
2111
2127
  queryParams = this.parseNameConventionQueryParams(queryParams);
2112
- const id = Object.values(queryParams.filter)[0];
2113
- const url = `${this.urlBase}${this.path}/${id}?${Util.objectToQueryString(queryParams)}`;
2128
+ const serializedId = this.serializeCompositeKey(queryParams.filter);
2129
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
2114
2130
  return this.doRequest({
2115
2131
  method: 'GET',
2116
2132
  url: url,
@@ -2118,6 +2134,29 @@ class JSONAPIService extends BaseDataService {
2118
2134
  errorCallBack: this.parseUnsuccessfulQueryResponse,
2119
2135
  });
2120
2136
  }
2137
+ serializeCompositeKey(keyObj) {
2138
+ if (keyObj == null) {
2139
+ console.warn('JSONAPI Service: Key object is null or undefined.');
2140
+ return '';
2141
+ }
2142
+ if (typeof keyObj === 'string') {
2143
+ if (keyObj.trim() === '') {
2144
+ console.warn('JSONAPI Service: Key string is empty.');
2145
+ }
2146
+ return keyObj;
2147
+ }
2148
+ const values = Object.values(keyObj);
2149
+ if (values.length === 0) {
2150
+ console.warn('JSONAPI Service: Key object has no properties.');
2151
+ return '';
2152
+ }
2153
+ for (const val of values) {
2154
+ if (val == null) {
2155
+ console.warn('JSONAPI Service: Key object contains null or undefined value.');
2156
+ }
2157
+ }
2158
+ return Object.values(keyObj).join(this.delimiter);
2159
+ }
2121
2160
  parseNameConventionQueryParams(queryParams) {
2122
2161
  if (Util.isDefined(queryParams.fields)) {
2123
2162
  const entity = Object.keys(queryParams.fields)[0];
@@ -2149,9 +2188,10 @@ class JSONAPIService extends BaseDataService {
2149
2188
  });
2150
2189
  }
2151
2190
  update(id, attributes, type) {
2152
- const url = `${this.urlBase}${this.path}/${id}`;
2191
+ const serializedId = this.serializeCompositeKey(id);
2192
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
2153
2193
  attributes = this.nameConvention.parseDataToNameConvention(attributes);
2154
- let data = Object.assign(Object.assign({ attributes: attributes }, { id: id }), { type: type });
2194
+ let data = Object.assign(Object.assign({ attributes: attributes }, { id: serializedId }), { type: type });
2155
2195
  const body = JSON.stringify({
2156
2196
  data: data
2157
2197
  });
@@ -2164,7 +2204,8 @@ class JSONAPIService extends BaseDataService {
2164
2204
  });
2165
2205
  }
2166
2206
  delete(id) {
2167
- const url = `${this.urlBase}${this.path}/${id}`;
2207
+ const serializedId = this.serializeCompositeKey(id);
2208
+ const url = `${this.urlBase}${this.path}/${serializedId}`;
2168
2209
  return this.doRequest({
2169
2210
  method: 'DELETE',
2170
2211
  url: url,
@@ -8698,7 +8739,7 @@ class OFormMessageService {
8698
8739
  return 'MESSAGES.ERROR_DELETE';
8699
8740
  }
8700
8741
  getDeleteConfirmationMessage() {
8701
- return 'MESSAGES.CONFIRM_DELETE';
8742
+ return 'MESSAGES.CONFIRM_DELETE_ITEM';
8702
8743
  }
8703
8744
  getDeleteConfirmationDialogTitle() {
8704
8745
  return 'CONFIRM';
@@ -8879,15 +8920,21 @@ class OFormNavigationComponent {
8879
8920
  }
8880
8921
  last() {
8881
8922
  if (!this.queryConf || this.isLast()) {
8882
- const index = this.navigationData.length - 1;
8883
- this.move(index);
8923
+ this.moveToLast();
8924
+ return;
8884
8925
  }
8885
- else {
8886
- const offset = this.queryConf.totalRecordsNumber - this.queryConf.queryRows;
8887
- this.queryNavigationData(offset, this.queryConf.queryRows).then(() => {
8888
- this.move(this.navigationData.length - 1);
8889
- });
8926
+ const offset = this.queryConf.totalRecordsNumber - this.queryConf.queryRows;
8927
+ if (offset < 0 || offset === this.queryConf.queryRecordOffset) {
8928
+ this.moveToLast();
8929
+ return;
8890
8930
  }
8931
+ this.queryNavigationData(offset, this.queryConf.queryRows).then(() => {
8932
+ this.moveToLast();
8933
+ });
8934
+ }
8935
+ moveToLast() {
8936
+ const index = this.navigationData.length - 1;
8937
+ this.move(index);
8891
8938
  }
8892
8939
  isFirst() {
8893
8940
  let result = this.currentIndex === 0;
@@ -10183,8 +10230,7 @@ class OFormComponent {
10183
10230
  this.loaderSubscription = this.load();
10184
10231
  const self = this;
10185
10232
  const observable = new Observable(observer => {
10186
- const id = this.dataService.requestArgumentAdapter.getIdFromFilter(filter);
10187
- this.dataService[this.updateMethod](id, values, this.entity, sqlTypes).subscribe(resp => {
10233
+ this.dataService[this.updateMethod](filter, values, this.entity, sqlTypes).subscribe(resp => {
10188
10234
  if (resp.isSuccessful()) {
10189
10235
  observer.next(resp.data);
10190
10236
  observer.complete();
@@ -10230,8 +10276,7 @@ class OFormComponent {
10230
10276
  const sqlTypes = this.getAttributesSQLTypes();
10231
10277
  const observable = new Observable(observer => {
10232
10278
  this.canDiscardChanges = true;
10233
- const id = this.dataService.requestArgumentAdapter.getIdFromFilter(filter);
10234
- this.dataService[this.deleteMethod](id, this.entity, sqlTypes).subscribe(resp => {
10279
+ this.dataService[this.deleteMethod](filter, this.entity, sqlTypes).subscribe(resp => {
10235
10280
  if (resp.isSuccessful()) {
10236
10281
  self.formCache.setCacheSnapshot();
10237
10282
  self.markFormLayoutManagerToUpdate();
@@ -19623,6 +19668,14 @@ class OBooleanFormDataComponent extends OFormDataComponent {
19623
19668
  onClickBlocker(evt) {
19624
19669
  evt.stopPropagation();
19625
19670
  }
19671
+ getValue() {
19672
+ if (Util.isDefined(this.value) && this.value.value !== undefined) {
19673
+ return this.value.value ? this.trueValue : this.falseValue;
19674
+ }
19675
+ else {
19676
+ return this.defaultValue;
19677
+ }
19678
+ }
19626
19679
  }
19627
19680
  OBooleanFormDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OBooleanFormDataComponent, deps: [{ token: forwardRef(() => OFormComponent), optional: true }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
19628
19681
  OBooleanFormDataComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: OBooleanFormDataComponent, inputs: { trueValue: ["true-value", "trueValue"], falseValue: ["false-value", "falseValue"], booleanType: ["boolean-type", "booleanType"] }, usesInheritance: true, ngImport: i0 });
@@ -41368,7 +41421,8 @@ const ONTIMIZE_PROVIDERS = [
41368
41421
  OPreferenceResponseAdapter,
41369
41422
  { provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: { disabled: true } },
41370
41423
  { provide: O_MAT_ERROR_OPTIONS, useValue: {} },
41371
- { provide: O_INPUTS_OPTIONS, useValue: {} }
41424
+ { provide: O_INPUTS_OPTIONS, useValue: {} },
41425
+ { provide: O_JSON_API_CONFIG, useValue: {} }
41372
41426
  ];
41373
41427
 
41374
41428
  class ODialogConfig {
@@ -41934,8 +41988,10 @@ function ontimizePostBootstrap(ngModuleRef) {
41934
41988
 
41935
41989
  ;
41936
41990
 
41991
+ ;
41992
+
41937
41993
  class OUserInfoBase {
41938
41994
  }
41939
41995
 
41940
- export { APP_CONFIG, AbstractComponentStateClass, AbstractComponentStateService, AbstractOServiceBaseComponent, AbstractOServiceComponent, AbstractServiceComponentStateClass, AppConfig, AppConfigFactory, AppMenuService, AppearanceService, AuthGuardService, AuthService, Base64, BaseDataService, BaseRequestArgument, BaseService, BaseServiceResponse, BooleanConverter, BooleanInputConverter, CKEditorComponent, CKEditorModule, CanActivateFormLayoutChildGuard, CanDeactivateFormGuard, Codes, ColumnValueFilterOperator, ColumnsFilterPipe, ComponentStateServiceProvider, CurrencyService, CurrencyUtil, DEFAULT_CONTEXT_MENU_CONTENT_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS, DEFAULT_CONTEXT_MENU_DIRECTIVE_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_OUTPUTS, DEFAULT_DUAL_LIST_SELECTOR, DEFAULT_DUAL_LIST_SELECTOR_DATE_ITEM, DEFAULT_INPUTS_O_APP_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT, DEFAULT_INPUTS_O_APP_LAYOUT_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU, DEFAULT_INPUTS_O_BAR_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU_NESTED, DEFAULT_INPUTS_O_BASE_MENU_ITEM, DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER, DEFAULT_INPUTS_O_BREADCRUMB, DEFAULT_INPUTS_O_BUTTON, DEFAULT_INPUTS_O_BUTTON_TOGGLE, DEFAULT_INPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_INPUTS_O_CARD_RENDERER, DEFAULT_INPUTS_O_CHECKBOX, DEFAULT_INPUTS_O_COMBO, DEFAULT_INPUTS_O_COMBO_RENDERER, DEFAULT_INPUTS_O_COMBO_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_COMBO_RENDERER_CURRENCY, DEFAULT_INPUTS_O_COMBO_RENDERER_DATE, DEFAULT_INPUTS_O_COMBO_RENDERER_ICON, DEFAULT_INPUTS_O_COMBO_RENDERER_INTEGER, DEFAULT_INPUTS_O_COMBO_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_COMBO_RENDERER_REAL, DEFAULT_INPUTS_O_CONTAINER, DEFAULT_INPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_INPUTS_O_CONTEXT_MENU_ITEMS, DEFAULT_INPUTS_O_CURRENCY_INPUT, DEFAULT_INPUTS_O_DATA_TOOLBAR, DEFAULT_INPUTS_O_DATERANGE_INPUT, DEFAULT_INPUTS_O_DATERANGE_LEGACY_INPUT, DEFAULT_INPUTS_O_DATE_INPUT, DEFAULT_INPUTS_O_ERROR, DEFAULT_INPUTS_O_FILE_INPUT, DEFAULT_INPUTS_O_FILTER_BUILDER, DEFAULT_INPUTS_O_FILTER_BUILDER_MENU, DEFAULT_INPUTS_O_FORM, DEFAULT_INPUTS_O_FORM_CONTAINER, DEFAULT_INPUTS_O_FORM_DATA_COMPONENT, DEFAULT_INPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_INPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_INPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_INPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_INPUTS_O_FORM_TOOLBAR, DEFAULT_INPUTS_O_GRID, DEFAULT_INPUTS_O_GRID_ITEM, DEFAULT_INPUTS_O_HOUR_INPUT, DEFAULT_INPUTS_O_HTML_INPUT, DEFAULT_INPUTS_O_IMAGE, DEFAULT_INPUTS_O_INTEGER_INPUT, DEFAULT_INPUTS_O_LANGUAGE_SELECTOR, DEFAULT_INPUTS_O_LIST, DEFAULT_INPUTS_O_LISTPICKER_RENDERER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_CURRENCY, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_DATE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_INTEGER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_REAL, DEFAULT_INPUTS_O_LIST_ITEM_AVATAR, DEFAULT_INPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_INPUTS_O_LIST_ITEM_TEXT, DEFAULT_INPUTS_O_LIST_PICKER, DEFAULT_INPUTS_O_LIST_PICKER_DIALOG, DEFAULT_INPUTS_O_LOCALE_BAR_MENU_ITEM, DEFAULT_INPUTS_O_LOCKER, DEFAULT_INPUTS_O_MENU_CARD, DEFAULT_INPUTS_O_MENU_LAYOUT, DEFAULT_INPUTS_O_PASSWORD_INPUT, DEFAULT_INPUTS_O_PERCENT_INPUT, DEFAULT_INPUTS_O_PHONE_INPUT, DEFAULT_INPUTS_O_RADIO, DEFAULT_INPUTS_O_REAL_INPUT, DEFAULT_INPUTS_O_SEARCH_INPUT, DEFAULT_INPUTS_O_SERVICE_BASE_COMPONENT, DEFAULT_INPUTS_O_SERVICE_COMPONENT, DEFAULT_INPUTS_O_SLIDER_INPUT, DEFAULT_INPUTS_O_SLIDETOGGLE, DEFAULT_INPUTS_O_TABLE, DEFAULT_INPUTS_O_TABLE_BUTTON, DEFAULT_INPUTS_O_TABLE_BUTTONS, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_DATE, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_CURRENCY, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_DATE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_REAL, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TRANSLATE, DEFAULT_INPUTS_O_TABLE_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_CALCULATED, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_INPUTS_O_TABLE_COLUMN_SELECTALL, DEFAULT_INPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_INPUTS_O_TABLE_HEADER, DEFAULT_INPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_INPUTS_O_TABLE_MENU, DEFAULT_INPUTS_O_TABLE_OPTION, DEFAULT_INPUTS_O_TABLE_QUICKFILTER, DEFAULT_INPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_INPUTS_O_TEXTAREA_INPUT, DEFAULT_INPUTS_O_TEXT_INPUT, DEFAULT_INPUTS_O_TEXT_RENDERER, DEFAULT_INPUTS_O_TIME_INPUT, DEFAULT_INPUTS_O_TREE, DEFAULT_INPUTS_O_USER_INFO, DEFAULT_INPUTS_O_USER_INFO_MENU, DEFAULT_INPUTS_O_USER_INFO_MENU_ITEM, DEFAULT_INPUTS_O_VALIDATOR, DEFAULT_INPUT_O_EXPANDABLE_CONTAINER, DEFAULT_OUTPUTS_LANGUAGE_SELECTOR, DEFAULT_OUTPUTS_O_APP_HEADER, DEFAULT_OUTPUTS_O_APP_LAYOUT, DEFAULT_OUTPUTS_O_APP_SIDENAV, DEFAULT_OUTPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_OUTPUTS_O_BUTTON, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_OUTPUTS_O_CARD_RENDERER, DEFAULT_OUTPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_OUTPUTS_O_CONTEXT_MENU, DEFAULT_OUTPUTS_O_DATERANGE_INPUT, DEFAULT_OUTPUTS_O_DATERANGE_LEGACY_INPUT, DEFAULT_OUTPUTS_O_FILE_INPUT, DEFAULT_OUTPUTS_O_FILTER_BUILDER, DEFAULT_OUTPUTS_O_FORM, DEFAULT_OUTPUTS_O_FORM_DATA_COMPONENT, DEFAULT_OUTPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_OUTPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_OUTPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_OUTPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_FORM_TOOLBAR, DEFAULT_OUTPUTS_O_HTML_INPUT, DEFAULT_OUTPUTS_O_LIST, DEFAULT_OUTPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_OUTPUTS_O_LIST_PICKER, DEFAULT_OUTPUTS_O_MENU_CARD, DEFAULT_OUTPUTS_O_MENU_LAYOUT, DEFAULT_OUTPUTS_O_PERCENT_INPUT, DEFAULT_OUTPUTS_O_SEARCH_INPUT, DEFAULT_OUTPUTS_O_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_TABLE, DEFAULT_OUTPUTS_O_TABLE_BUTTON, DEFAULT_OUTPUTS_O_TABLE_BUTTONS, DEFAULT_OUTPUTS_O_TABLE_CELL_EDITOR, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_OUTPUTS_O_TABLE_COLUMN, DEFAULT_OUTPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_OUTPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_OUTPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_OUTPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_OUTPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_OUTPUTS_O_TABLE_MENU, DEFAULT_OUTPUTS_O_TABLE_OPTION, DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER, DEFAULT_OUTPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_OUTPUTS_O_TEXT_RENDERER, DEFAULT_OUTPUTS_O_TREE, DEFAULT_OUTPUTS_O_USER_INFO, DEFAULT_OUTPUTS_O_USER_INFO_MENU, DEFAULT_PAGINATOR_TABLE, DEFAULT_TABLE_COLUMN_AGGREGATE, DEFAULT_TABLE_CONTEXT_MENU_INPUTS, DaterangepickerComponent, DefaultComponentStateClass, DefaultComponentStateService, DefaultOServiceBaseComponent, DefaultOTableDataSource, DefaultOTableOptions, DefaultServiceComponentStateClass, DefaultServiceComponentStateService, DialogService, Error403Component, ExportDataServiceProvider, FilterExpressionUtils, IconService, InputRegulateDirective, IsEmptyValuePipe, JSONAPIPreferencesService, JSONAPIRequestArgumentsAdapter, JSONAPIService, JSONAPIServiceResponse, JSONAPIServiceResponseAdapter, ListItem, LocalStorageService, LoginStorageService, MomentService, NameConvention, NameConventionLower, NameConventionProvider, NameConventionUpper, NavigationService, NumberConverter, NumberInputConverter, NumberService, OAppHeaderBase, OAppHeaderComponent, OAppHeaderModule, OAppLayoutBase, OAppLayoutComponent, OAppLayoutHeaderComponent, OAppLayoutModule, OAppLayoutSidenavComponent, OAppSidenavBase, OAppSidenavComponent, OAppSidenavImageComponent, OAppSidenavMenuGroupComponent, OAppSidenavMenuItemComponent, OAppSidenavModule, OBarMenuBase, OBarMenuComponent, OBarMenuGroupComponent, OBarMenuItemComponent, OBarMenuModule, OBarMenuNestedComponent, OBarMenuSeparatorComponent, OBaseComponent, OBaseMenuItemClass, OBaseTableCellEditor, OBaseTableCellRenderer, OBaseTablePaginator, OBreadcrumbComponent, OBreadcrumbModule, OBreadcrumbService, OButtonComponent, OButtonModule, OButtonToggleComponent, OButtonToggleGroupComponent, OButtonToggleModule, OCardMenuItemComponent, OCardMenuItemModule, OCardMenuLayoutComponent, OCardMenuLayoutModule, OCheckboxComponent, OCheckboxModule, OColumn, OColumnCollapsibleComponent, OColumnCollapsibleModule, OColumnComponent, OColumnModule, OComboComponent, OComboCustomRenderer, OComboModule, OComboRendererBooleanComponent, OComboRendererCurrencyComponent, OComboRendererDateComponent, OComboRendererIconComponent, OComboRendererIntegerComponent, OComboRendererPercentageComponent, OComboRendererRealComponent, OComboSearchComponent, OComponentMenuBaseItem, OContainerCollapsibleComponent, OContainerComponent, OContextMenuComponent, OContextMenuContentComponent, OContextMenuDirective, OContextMenuGroupComponent, OContextMenuItemComponent, OContextMenuModule, OContextMenuSeparatorComponent, OContextMenuService, OCurrencyInputComponent, OCurrencyInputModule, OCurrencyPipe, OCustomMaterialModule, ODataToolbarComponent, ODataToolbarModule, ODateInputComponent, ODateInputModule, ODateRangeInputComponent, ODateRangeInputModule, ODateRangeLegacyInputComponent, ODateRangeLegacyInputModule, ODaterangepickerDirective, ODialogBase, ODialogComponent, ODialogConfig, ODualListSelectorComponent, ODualListSelectorDateItemComponent, ODualListSelectorModule, OEmailInputComponent, OEmailInputModule, OErrorComponent, OErrorDialogManager, OExpandableContainerComponent, OExpandableContainerModule, OFileDragAndDropDirective, OFileInputComponent, OFileInputModule, OFileItem, OFileUploader, OFilterBuilderBase, OFilterBuilderClearDirective, OFilterBuilderComponent, OFilterBuilderMenuComponent, OFilterBuilderModule, OFilterBuilderQueryDirective, OFormBase, OFormCacheClass, OFormComponent, OFormContainerComponent, OFormContainerModule, OFormControl, OFormDataComponent, OFormLayoutDialogComponent, OFormLayoutDialogOptionsDirective, OFormLayoutManagerBase, OFormLayoutManagerComponent, OFormLayoutManagerComponentStateClass, OFormLayoutManagerComponentStateService, OFormLayoutManagerContentDirective, OFormLayoutManagerModule, OFormLayoutManagerService, OFormLayoutSplitPaneComponent, OFormLayoutSplitPaneOptionsDirective, OFormLayoutTabGroupComponent, OFormLayoutTabGroupOptionsDirective, OFormMessageService, OFormModule, OFormNavigationClass, OFormNavigationComponent, OFormServiceComponent, OFormToolbarBase, OFormToolbarComponent, OFormToolbarModule, OFormValue, OFullScreenDialogComponent, OGridComponent, OGridComponentStateClass, OGridComponentStateService, OGridItemComponent, OGridItemDirective, OGridModule, OGridSkeletonComponent, OHTMLInputComponent, OHTMLInputModule, OHiddenDirective, OHourInputComponent, OHourInputModule, OIconPipe, OImageComponent, OImageModule, OIntegerInputComponent, OIntegerInputModule, OIntegerPipe, OKeyboardListenerDirective, OLanguageSelectorComponent, OLanguageSelectorModule, OListComponent, OListComponentStateClass, OListComponentStateService, OListItemAvatarComponent, OListItemCardComponent, OListItemCardImageComponent, OListItemCardRenderer, OListItemComponent, OListItemDirective, OListItemTextComponent, OListItemTextRenderer, OListModule, OListPickerComponent, OListPickerCustomRenderer, OListPickerDialogComponent, OListPickerModule, OListPickerRendererCurrencyComponent, OListPickerRendererDateComponent, OListPickerRendererIntegerComponent, OListPickerRendererPercentageComponent, OListPickerRendererRealComponent, OListSkeletonComponent, OLoadFilterDialogComponent, OLocaleBarMenuItemComponent, OLockerDirective, OMatErrorDirective, OMatPrefix, OMatSort, OMatSortHeader, OMatSortModule, OMatSuffix, OModulesInfoService, OMomentPipe, ONIFInputComponent, ONIFInputModule, ONTIMIZE_MODULES, ONTIMIZE_PROVIDERS, ONavigationItem, OPasswordInputComponent, OPasswordInputModule, OPercentInputComponent, OPercentInputModule, OPercentPipe, OPermissionsModule, OPhoneInputComponent, OPhoneInputModule, OPreferenceMappingUtils, OPreferenceResponseAdapter, ORadioComponent, ORadioModule, ORealInputComponent, ORealInputModule, ORealPipe, ORemoteConfigurationService, ORepeatableSkeletonComponent, ORowCollapsibleComponent, ORowCollapsibleModule, ORowComponent, ORowModule, OSafePipe, OSearchInputComponent, OSearchInputModule, OServiceBaseComponent, OServiceComponent, OSharedModule, OSkeletonComponent, OSlideToggleComponent, OSlideToggleModule, OSliderComponent, OSliderModule, OSnackBarBase, OSnackBarComponent, OSnackBarConfig, OStoreFilterDialogComponent, OTabGroupDirective, OTableApplyConfigurationDialogComponent, OTableBase, OTableBaseDialogClass, OTableButtonComponent, OTableButtonsComponent, OTableCellEditorBooleanComponent, OTableCellEditorDateComponent, OTableCellEditorEmailComponent, OTableCellEditorIntegerComponent, OTableCellEditorRealComponent, OTableCellEditorTextComponent, OTableCellEditorTimeComponent, OTableCellRendererActionComponent, OTableCellRendererBooleanComponent, OTableCellRendererCurrencyComponent, OTableCellRendererDateComponent, OTableCellRendererImageComponent, OTableCellRendererIntegerComponent, OTableCellRendererPercentageComponent, OTableCellRendererRealComponent, OTableCellRendererServiceComponent, OTableCellRendererTimeComponent, OTableCellRendererTranslateComponent, OTableColumnAggregateComponent, OTableColumnCalculatedComponent, OTableColumnComponent, OTableColumnResizerComponent, OTableColumnSelectAllDirective, OTableColumnsFilterColumnComponent, OTableColumnsFilterComponent, OTableColumnsGroupingColumnComponent, OTableColumnsGroupingComponent, OTableComponent, OTableComponentStateClass, OTableComponentStateService, OTableContextMenuComponent, OTableDao, OTableDataSourceService, OTableExpandedFooterDirective, OTableExportButtonComponent, OTableExportButtonService, OTableExportConfiguration, OTableExportDialogComponent, OTableFilterByColumnDataDialogComponent, OTableGroupByColumnsDialogComponent, OTableGroupedRow, OTableHeaderComponent, OTableHeaderSelectAllComponent, OTableInsertableRowComponent, OTableMatPaginatorIntl, OTableMenuComponent, OTableModule, OTableOptionComponent, OTablePaginatorComponent, OTableQuickfilterComponent, OTableRowClassPipe, OTableRowDirective, OTableRowExpandableComponent, OTableRowExpandedChange, OTableSkeletonComponent, OTableStoreConfigurationDialogComponent, OTableVirtualScrollStrategy, OTableVisibleColumnsDialogComponent, OTextInputComponent, OTextInputModule, OTextareaInputComponent, OTextareaInputModule, OTimeInputComponent, OTimeInputModule, OTranslateHttpLoader, OTranslateModule, OTranslateParser, OTranslatePipe, OTranslateService, OTreeComponent, OTreeMenuComponent, OTreeModule, OTreeNodeComponent, OUserInfoBase, OUserInfoComponent, OUserInfoConfigurationDirective, OUserInfoConfigurationItemDirective, OUserInfoModule, OUserInfoService, OValidatorComponent, OValidators, OValueChangeEvent, OWrapperContentMenuComponent, O_AUTH_SERVICE, O_CHART_ON_DEMAND_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_ERROR_DIALOG_MANAGER, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_FORM_GLOBAL_CONFIG, O_FORM_MESSAGE_SERVICE, O_GLOBAL_CONFIG, O_INPUTS_OPTIONS, O_LOCALSTORAGE_SERVICE, O_MAT_ERROR_OPTIONS, O_PERMISSION_SERVICE, O_REPORT_SERVICE, O_REQUEST_ADAPTER, O_RESPONSE_ADAPTER, O_TABLE_CELL_EDITORS, O_TABLE_CELL_EDITORS_INPUTS, O_TABLE_CELL_EDITORS_OUTPUTS, O_TABLE_CELL_RENDERERS, O_TABLE_CELL_RENDERERS_INPUTS, O_TABLE_CELL_RENDERERS_OUTPUTS, O_TABLE_GLOBAL_CONFIG, O_TRANSLATE_SERVICE, ObservableWrapper, OnRangeChangeVirtualScroll, OntimizeAuthService, OntimizeAuthServiceProvider, OntimizeBaseService, OntimizeEEPermissionsService, OntimizeEEService, OntimizeExportDataProviderService, OntimizeExportDataProviderService3X, OntimizeExportService, OntimizeExportService3X, OntimizeExportServiceProvider, OntimizeFileService, OntimizeLocalStorageServiceProvider, OntimizeMatDateFormats, OntimizeMatIconRegistry, OntimizeMomentDateAdapter, OntimizePermissionsService, OntimizePreferencesService, OntimizeRequestArgumentsAdapter, OntimizeService, OntimizeServiceProvider, OntimizeServiceResponse, OntimizeServiceResponseAdapter, OntimizeServiceResponseParser, OntimizeWebModule, OntimizeWebTranslateModule, OrderByPipe, PaginationContextService, PermissionsGuardService, PermissionsService, PermissionsUtils, SQLTypes, ServiceRequestAdapter, ServiceResponseAdapter, ServiceUtils, ShareCanActivateChildService, SideEnum, SnackBarService, StringConverter, TWELVE_HOUR_FORMAT_PATTERN, TWENTY_FOUR_HOUR_FORMAT_PATTERN, TableFilterByColumnDialogResult, Util, _getInjectionTokenValue, appConfigFactory, authServiceFactory, componentStateFactory, createServiceInstance, dataServiceFactory, dateFormatFactory, editorsMapping, exportDataFactory, exportServiceFactory, fileServiceFactory, getPermissionsServiceProvider, localStorageServiceFactory, nameConventionServiceFactory, noop, ontimizePostBootstrap, permissionsServiceFactory, preferencesServiceFactory, renderersMapping, serviceRequestAdapterFactory, serviceResponseAdapterFactory, translateServiceFactory };
41996
+ export { APP_CONFIG, AbstractComponentStateClass, AbstractComponentStateService, AbstractOServiceBaseComponent, AbstractOServiceComponent, AbstractServiceComponentStateClass, AppConfig, AppConfigFactory, AppMenuService, AppearanceService, AuthGuardService, AuthService, Base64, BaseDataService, BaseRequestArgument, BaseService, BaseServiceResponse, BooleanConverter, BooleanInputConverter, CKEditorComponent, CKEditorModule, CanActivateFormLayoutChildGuard, CanDeactivateFormGuard, Codes, ColumnValueFilterOperator, ColumnsFilterPipe, ComponentStateServiceProvider, CurrencyService, CurrencyUtil, DEFAULT_CONTEXT_MENU_CONTENT_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS, DEFAULT_CONTEXT_MENU_DIRECTIVE_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_OUTPUTS, DEFAULT_DUAL_LIST_SELECTOR, DEFAULT_DUAL_LIST_SELECTOR_DATE_ITEM, DEFAULT_INPUTS_O_APP_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT, DEFAULT_INPUTS_O_APP_LAYOUT_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU, DEFAULT_INPUTS_O_BAR_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU_NESTED, DEFAULT_INPUTS_O_BASE_MENU_ITEM, DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER, DEFAULT_INPUTS_O_BREADCRUMB, DEFAULT_INPUTS_O_BUTTON, DEFAULT_INPUTS_O_BUTTON_TOGGLE, DEFAULT_INPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_INPUTS_O_CARD_RENDERER, DEFAULT_INPUTS_O_CHECKBOX, DEFAULT_INPUTS_O_COMBO, DEFAULT_INPUTS_O_COMBO_RENDERER, DEFAULT_INPUTS_O_COMBO_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_COMBO_RENDERER_CURRENCY, DEFAULT_INPUTS_O_COMBO_RENDERER_DATE, DEFAULT_INPUTS_O_COMBO_RENDERER_ICON, DEFAULT_INPUTS_O_COMBO_RENDERER_INTEGER, DEFAULT_INPUTS_O_COMBO_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_COMBO_RENDERER_REAL, DEFAULT_INPUTS_O_CONTAINER, DEFAULT_INPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_INPUTS_O_CONTEXT_MENU_ITEMS, DEFAULT_INPUTS_O_CURRENCY_INPUT, DEFAULT_INPUTS_O_DATA_TOOLBAR, DEFAULT_INPUTS_O_DATERANGE_INPUT, DEFAULT_INPUTS_O_DATERANGE_LEGACY_INPUT, DEFAULT_INPUTS_O_DATE_INPUT, DEFAULT_INPUTS_O_ERROR, DEFAULT_INPUTS_O_FILE_INPUT, DEFAULT_INPUTS_O_FILTER_BUILDER, DEFAULT_INPUTS_O_FILTER_BUILDER_MENU, DEFAULT_INPUTS_O_FORM, DEFAULT_INPUTS_O_FORM_CONTAINER, DEFAULT_INPUTS_O_FORM_DATA_COMPONENT, DEFAULT_INPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_INPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_INPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_INPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_INPUTS_O_FORM_TOOLBAR, DEFAULT_INPUTS_O_GRID, DEFAULT_INPUTS_O_GRID_ITEM, DEFAULT_INPUTS_O_HOUR_INPUT, DEFAULT_INPUTS_O_HTML_INPUT, DEFAULT_INPUTS_O_IMAGE, DEFAULT_INPUTS_O_INTEGER_INPUT, DEFAULT_INPUTS_O_LANGUAGE_SELECTOR, DEFAULT_INPUTS_O_LIST, DEFAULT_INPUTS_O_LISTPICKER_RENDERER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_CURRENCY, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_DATE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_INTEGER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_REAL, DEFAULT_INPUTS_O_LIST_ITEM_AVATAR, DEFAULT_INPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_INPUTS_O_LIST_ITEM_TEXT, DEFAULT_INPUTS_O_LIST_PICKER, DEFAULT_INPUTS_O_LIST_PICKER_DIALOG, DEFAULT_INPUTS_O_LOCALE_BAR_MENU_ITEM, DEFAULT_INPUTS_O_LOCKER, DEFAULT_INPUTS_O_MENU_CARD, DEFAULT_INPUTS_O_MENU_LAYOUT, DEFAULT_INPUTS_O_PASSWORD_INPUT, DEFAULT_INPUTS_O_PERCENT_INPUT, DEFAULT_INPUTS_O_PHONE_INPUT, DEFAULT_INPUTS_O_RADIO, DEFAULT_INPUTS_O_REAL_INPUT, DEFAULT_INPUTS_O_SEARCH_INPUT, DEFAULT_INPUTS_O_SERVICE_BASE_COMPONENT, DEFAULT_INPUTS_O_SERVICE_COMPONENT, DEFAULT_INPUTS_O_SLIDER_INPUT, DEFAULT_INPUTS_O_SLIDETOGGLE, DEFAULT_INPUTS_O_TABLE, DEFAULT_INPUTS_O_TABLE_BUTTON, DEFAULT_INPUTS_O_TABLE_BUTTONS, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_DATE, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_CURRENCY, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_DATE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_REAL, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TRANSLATE, DEFAULT_INPUTS_O_TABLE_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_CALCULATED, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_INPUTS_O_TABLE_COLUMN_SELECTALL, DEFAULT_INPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_INPUTS_O_TABLE_HEADER, DEFAULT_INPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_INPUTS_O_TABLE_MENU, DEFAULT_INPUTS_O_TABLE_OPTION, DEFAULT_INPUTS_O_TABLE_QUICKFILTER, DEFAULT_INPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_INPUTS_O_TEXTAREA_INPUT, DEFAULT_INPUTS_O_TEXT_INPUT, DEFAULT_INPUTS_O_TEXT_RENDERER, DEFAULT_INPUTS_O_TIME_INPUT, DEFAULT_INPUTS_O_TREE, DEFAULT_INPUTS_O_USER_INFO, DEFAULT_INPUTS_O_USER_INFO_MENU, DEFAULT_INPUTS_O_USER_INFO_MENU_ITEM, DEFAULT_INPUTS_O_VALIDATOR, DEFAULT_INPUT_O_EXPANDABLE_CONTAINER, DEFAULT_OUTPUTS_LANGUAGE_SELECTOR, DEFAULT_OUTPUTS_O_APP_HEADER, DEFAULT_OUTPUTS_O_APP_LAYOUT, DEFAULT_OUTPUTS_O_APP_SIDENAV, DEFAULT_OUTPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_OUTPUTS_O_BUTTON, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_OUTPUTS_O_CARD_RENDERER, DEFAULT_OUTPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_OUTPUTS_O_CONTEXT_MENU, DEFAULT_OUTPUTS_O_DATERANGE_INPUT, DEFAULT_OUTPUTS_O_DATERANGE_LEGACY_INPUT, DEFAULT_OUTPUTS_O_FILE_INPUT, DEFAULT_OUTPUTS_O_FILTER_BUILDER, DEFAULT_OUTPUTS_O_FORM, DEFAULT_OUTPUTS_O_FORM_DATA_COMPONENT, DEFAULT_OUTPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_OUTPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_OUTPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_OUTPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_FORM_TOOLBAR, DEFAULT_OUTPUTS_O_HTML_INPUT, DEFAULT_OUTPUTS_O_LIST, DEFAULT_OUTPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_OUTPUTS_O_LIST_PICKER, DEFAULT_OUTPUTS_O_MENU_CARD, DEFAULT_OUTPUTS_O_MENU_LAYOUT, DEFAULT_OUTPUTS_O_PERCENT_INPUT, DEFAULT_OUTPUTS_O_SEARCH_INPUT, DEFAULT_OUTPUTS_O_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_TABLE, DEFAULT_OUTPUTS_O_TABLE_BUTTON, DEFAULT_OUTPUTS_O_TABLE_BUTTONS, DEFAULT_OUTPUTS_O_TABLE_CELL_EDITOR, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_OUTPUTS_O_TABLE_COLUMN, DEFAULT_OUTPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_OUTPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_OUTPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_OUTPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_OUTPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_OUTPUTS_O_TABLE_MENU, DEFAULT_OUTPUTS_O_TABLE_OPTION, DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER, DEFAULT_OUTPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_OUTPUTS_O_TEXT_RENDERER, DEFAULT_OUTPUTS_O_TREE, DEFAULT_OUTPUTS_O_USER_INFO, DEFAULT_OUTPUTS_O_USER_INFO_MENU, DEFAULT_PAGINATOR_TABLE, DEFAULT_TABLE_COLUMN_AGGREGATE, DEFAULT_TABLE_CONTEXT_MENU_INPUTS, DaterangepickerComponent, DefaultComponentStateClass, DefaultComponentStateService, DefaultOServiceBaseComponent, DefaultOTableDataSource, DefaultOTableOptions, DefaultServiceComponentStateClass, DefaultServiceComponentStateService, DialogService, Error403Component, ExportDataServiceProvider, FilterExpressionUtils, IconService, InputRegulateDirective, IsEmptyValuePipe, JSONAPIPreferencesService, JSONAPIRequestArgumentsAdapter, JSONAPIService, JSONAPIServiceResponse, JSONAPIServiceResponseAdapter, ListItem, LocalStorageService, LoginStorageService, MomentService, NameConvention, NameConventionLower, NameConventionProvider, NameConventionUpper, NavigationService, NumberConverter, NumberInputConverter, NumberService, OAppHeaderBase, OAppHeaderComponent, OAppHeaderModule, OAppLayoutBase, OAppLayoutComponent, OAppLayoutHeaderComponent, OAppLayoutModule, OAppLayoutSidenavComponent, OAppSidenavBase, OAppSidenavComponent, OAppSidenavImageComponent, OAppSidenavMenuGroupComponent, OAppSidenavMenuItemComponent, OAppSidenavModule, OBarMenuBase, OBarMenuComponent, OBarMenuGroupComponent, OBarMenuItemComponent, OBarMenuModule, OBarMenuNestedComponent, OBarMenuSeparatorComponent, OBaseComponent, OBaseMenuItemClass, OBaseTableCellEditor, OBaseTableCellRenderer, OBaseTablePaginator, OBreadcrumbComponent, OBreadcrumbModule, OBreadcrumbService, OButtonComponent, OButtonModule, OButtonToggleComponent, OButtonToggleGroupComponent, OButtonToggleModule, OCardMenuItemComponent, OCardMenuItemModule, OCardMenuLayoutComponent, OCardMenuLayoutModule, OCheckboxComponent, OCheckboxModule, OColumn, OColumnCollapsibleComponent, OColumnCollapsibleModule, OColumnComponent, OColumnModule, OComboComponent, OComboCustomRenderer, OComboModule, OComboRendererBooleanComponent, OComboRendererCurrencyComponent, OComboRendererDateComponent, OComboRendererIconComponent, OComboRendererIntegerComponent, OComboRendererPercentageComponent, OComboRendererRealComponent, OComboSearchComponent, OComponentMenuBaseItem, OContainerCollapsibleComponent, OContainerComponent, OContextMenuComponent, OContextMenuContentComponent, OContextMenuDirective, OContextMenuGroupComponent, OContextMenuItemComponent, OContextMenuModule, OContextMenuSeparatorComponent, OContextMenuService, OCurrencyInputComponent, OCurrencyInputModule, OCurrencyPipe, OCustomMaterialModule, ODataToolbarComponent, ODataToolbarModule, ODateInputComponent, ODateInputModule, ODateRangeInputComponent, ODateRangeInputModule, ODateRangeLegacyInputComponent, ODateRangeLegacyInputModule, ODaterangepickerDirective, ODialogBase, ODialogComponent, ODialogConfig, ODualListSelectorComponent, ODualListSelectorDateItemComponent, ODualListSelectorModule, OEmailInputComponent, OEmailInputModule, OErrorComponent, OErrorDialogManager, OExpandableContainerComponent, OExpandableContainerModule, OFileDragAndDropDirective, OFileInputComponent, OFileInputModule, OFileItem, OFileUploader, OFilterBuilderBase, OFilterBuilderClearDirective, OFilterBuilderComponent, OFilterBuilderMenuComponent, OFilterBuilderModule, OFilterBuilderQueryDirective, OFormBase, OFormCacheClass, OFormComponent, OFormContainerComponent, OFormContainerModule, OFormControl, OFormDataComponent, OFormLayoutDialogComponent, OFormLayoutDialogOptionsDirective, OFormLayoutManagerBase, OFormLayoutManagerComponent, OFormLayoutManagerComponentStateClass, OFormLayoutManagerComponentStateService, OFormLayoutManagerContentDirective, OFormLayoutManagerModule, OFormLayoutManagerService, OFormLayoutSplitPaneComponent, OFormLayoutSplitPaneOptionsDirective, OFormLayoutTabGroupComponent, OFormLayoutTabGroupOptionsDirective, OFormMessageService, OFormModule, OFormNavigationClass, OFormNavigationComponent, OFormServiceComponent, OFormToolbarBase, OFormToolbarComponent, OFormToolbarModule, OFormValue, OFullScreenDialogComponent, OGridComponent, OGridComponentStateClass, OGridComponentStateService, OGridItemComponent, OGridItemDirective, OGridModule, OGridSkeletonComponent, OHTMLInputComponent, OHTMLInputModule, OHiddenDirective, OHourInputComponent, OHourInputModule, OIconPipe, OImageComponent, OImageModule, OIntegerInputComponent, OIntegerInputModule, OIntegerPipe, OKeyboardListenerDirective, OLanguageSelectorComponent, OLanguageSelectorModule, OListComponent, OListComponentStateClass, OListComponentStateService, OListItemAvatarComponent, OListItemCardComponent, OListItemCardImageComponent, OListItemCardRenderer, OListItemComponent, OListItemDirective, OListItemTextComponent, OListItemTextRenderer, OListModule, OListPickerComponent, OListPickerCustomRenderer, OListPickerDialogComponent, OListPickerModule, OListPickerRendererCurrencyComponent, OListPickerRendererDateComponent, OListPickerRendererIntegerComponent, OListPickerRendererPercentageComponent, OListPickerRendererRealComponent, OListSkeletonComponent, OLoadFilterDialogComponent, OLocaleBarMenuItemComponent, OLockerDirective, OMatErrorDirective, OMatPrefix, OMatSort, OMatSortHeader, OMatSortModule, OMatSuffix, OModulesInfoService, OMomentPipe, ONIFInputComponent, ONIFInputModule, ONTIMIZE_MODULES, ONTIMIZE_PROVIDERS, ONavigationItem, OPasswordInputComponent, OPasswordInputModule, OPercentInputComponent, OPercentInputModule, OPercentPipe, OPermissionsModule, OPhoneInputComponent, OPhoneInputModule, OPreferenceMappingUtils, OPreferenceResponseAdapter, ORadioComponent, ORadioModule, ORealInputComponent, ORealInputModule, ORealPipe, ORemoteConfigurationService, ORepeatableSkeletonComponent, ORowCollapsibleComponent, ORowCollapsibleModule, ORowComponent, ORowModule, OSafePipe, OSearchInputComponent, OSearchInputModule, OServiceBaseComponent, OServiceComponent, OSharedModule, OSkeletonComponent, OSlideToggleComponent, OSlideToggleModule, OSliderComponent, OSliderModule, OSnackBarBase, OSnackBarComponent, OSnackBarConfig, OStoreFilterDialogComponent, OTabGroupDirective, OTableApplyConfigurationDialogComponent, OTableBase, OTableBaseDialogClass, OTableButtonComponent, OTableButtonsComponent, OTableCellEditorBooleanComponent, OTableCellEditorDateComponent, OTableCellEditorEmailComponent, OTableCellEditorIntegerComponent, OTableCellEditorRealComponent, OTableCellEditorTextComponent, OTableCellEditorTimeComponent, OTableCellRendererActionComponent, OTableCellRendererBooleanComponent, OTableCellRendererCurrencyComponent, OTableCellRendererDateComponent, OTableCellRendererImageComponent, OTableCellRendererIntegerComponent, OTableCellRendererPercentageComponent, OTableCellRendererRealComponent, OTableCellRendererServiceComponent, OTableCellRendererTimeComponent, OTableCellRendererTranslateComponent, OTableColumnAggregateComponent, OTableColumnCalculatedComponent, OTableColumnComponent, OTableColumnResizerComponent, OTableColumnSelectAllDirective, OTableColumnsFilterColumnComponent, OTableColumnsFilterComponent, OTableColumnsGroupingColumnComponent, OTableColumnsGroupingComponent, OTableComponent, OTableComponentStateClass, OTableComponentStateService, OTableContextMenuComponent, OTableDao, OTableDataSourceService, OTableExpandedFooterDirective, OTableExportButtonComponent, OTableExportButtonService, OTableExportConfiguration, OTableExportDialogComponent, OTableFilterByColumnDataDialogComponent, OTableGroupByColumnsDialogComponent, OTableGroupedRow, OTableHeaderComponent, OTableHeaderSelectAllComponent, OTableInsertableRowComponent, OTableMatPaginatorIntl, OTableMenuComponent, OTableModule, OTableOptionComponent, OTablePaginatorComponent, OTableQuickfilterComponent, OTableRowClassPipe, OTableRowDirective, OTableRowExpandableComponent, OTableRowExpandedChange, OTableSkeletonComponent, OTableStoreConfigurationDialogComponent, OTableVirtualScrollStrategy, OTableVisibleColumnsDialogComponent, OTextInputComponent, OTextInputModule, OTextareaInputComponent, OTextareaInputModule, OTimeInputComponent, OTimeInputModule, OTranslateHttpLoader, OTranslateModule, OTranslateParser, OTranslatePipe, OTranslateService, OTreeComponent, OTreeMenuComponent, OTreeModule, OTreeNodeComponent, OUserInfoBase, OUserInfoComponent, OUserInfoConfigurationDirective, OUserInfoConfigurationItemDirective, OUserInfoModule, OUserInfoService, OValidatorComponent, OValidators, OValueChangeEvent, OWrapperContentMenuComponent, O_AUTH_SERVICE, O_CHART_ON_DEMAND_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_ERROR_DIALOG_MANAGER, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_FORM_GLOBAL_CONFIG, O_FORM_MESSAGE_SERVICE, O_GLOBAL_CONFIG, O_INPUTS_OPTIONS, O_JSON_API_CONFIG, O_LOCALSTORAGE_SERVICE, O_MAT_ERROR_OPTIONS, O_PERMISSION_SERVICE, O_REPORT_SERVICE, O_REQUEST_ADAPTER, O_RESPONSE_ADAPTER, O_TABLE_CELL_EDITORS, O_TABLE_CELL_EDITORS_INPUTS, O_TABLE_CELL_EDITORS_OUTPUTS, O_TABLE_CELL_RENDERERS, O_TABLE_CELL_RENDERERS_INPUTS, O_TABLE_CELL_RENDERERS_OUTPUTS, O_TABLE_GLOBAL_CONFIG, O_TRANSLATE_SERVICE, ObservableWrapper, OnRangeChangeVirtualScroll, OntimizeAuthService, OntimizeAuthServiceProvider, OntimizeBaseService, OntimizeEEPermissionsService, OntimizeEEService, OntimizeExportDataProviderService, OntimizeExportDataProviderService3X, OntimizeExportService, OntimizeExportService3X, OntimizeExportServiceProvider, OntimizeFileService, OntimizeLocalStorageServiceProvider, OntimizeMatDateFormats, OntimizeMatIconRegistry, OntimizeMomentDateAdapter, OntimizePermissionsService, OntimizePreferencesService, OntimizeRequestArgumentsAdapter, OntimizeService, OntimizeServiceProvider, OntimizeServiceResponse, OntimizeServiceResponseAdapter, OntimizeServiceResponseParser, OntimizeWebModule, OntimizeWebTranslateModule, OrderByPipe, PaginationContextService, PermissionsGuardService, PermissionsService, PermissionsUtils, SQLTypes, ServiceRequestAdapter, ServiceResponseAdapter, ServiceUtils, ShareCanActivateChildService, SideEnum, SnackBarService, StringConverter, TWELVE_HOUR_FORMAT_PATTERN, TWENTY_FOUR_HOUR_FORMAT_PATTERN, TableFilterByColumnDialogResult, Util, _getInjectionTokenValue, appConfigFactory, authServiceFactory, componentStateFactory, createServiceInstance, dataServiceFactory, dateFormatFactory, editorsMapping, exportDataFactory, exportServiceFactory, fileServiceFactory, getPermissionsServiceProvider, localStorageServiceFactory, nameConventionServiceFactory, noop, ontimizePostBootstrap, permissionsServiceFactory, preferencesServiceFactory, renderersMapping, serviceRequestAdapterFactory, serviceResponseAdapterFactory, translateServiceFactory };
41941
41997
  //# sourceMappingURL=ontimize-web-ngx.mjs.map