wacom 18.2.0 → 18.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1087,7 +1087,7 @@ const randomText = uiService.text(15);
1087
1087
 
1088
1088
 
1089
1089
  ## [Crud Service](#crud-service)
1090
- The `CrudService` is designed to manage CRUD (Create, Read, Update, Delete) operations in an Angular application. It interacts with an API, stores documents locally, and provides methods for handling various CRUD operations.
1090
+ The `CrudService` is designed to manage CRUD (Create, Read, Update, Delete) operations in an Angular application. It interacts with an API, stores documents locally, and provides methods for handling various CRUD operations. It should be extended by specific services that manage different document types.
1091
1091
  ### Methods
1092
1092
  #### `new(): Document`
1093
1093
  Creates a new document with a temporary ID.
@@ -1096,12 +1096,10 @@ Creates a new document with a temporary ID.
1096
1096
 
1097
1097
  **Example**:
1098
1098
  ```Typescript
1099
- const newDoc = crudService.new();
1099
+ const newDoc = workService.new();
1100
1100
  ```
1101
-
1102
1101
  #### `doc(_id: string): Document`
1103
1102
  Retrieves a document by its ID.
1104
-
1105
1103
  **Parameters**:
1106
1104
  - `_id` (string): The document ID.
1107
1105
 
@@ -1110,9 +1108,25 @@ Retrieves a document by its ID.
1110
1108
 
1111
1109
  **Example**:
1112
1110
  ```Typescript
1113
- const doc = crudService.doc('12345');
1111
+ const doc = workService.doc('12345');
1112
+ ```
1113
+ #### `addDoc(doc: Document): void`
1114
+ Adds or updates a document in the local store.
1115
+
1116
+ **Parameters**:
1117
+ - `doc` (Document): The document to add or update.
1118
+
1119
+ **Example**:
1120
+ ```Typescript
1121
+ workService.addDoc(doc);
1114
1122
  ```
1123
+ #### `setDocs(): void`
1124
+ Saves the current state of documents to local storage.
1115
1125
 
1126
+ **Example**:
1127
+ ```Typescript
1128
+ workService.setDocs();
1129
+ ```
1116
1130
  #### `configDocs(name: string, config: (doc: Document, container: unknown) => void, reset: () => unknown): unknown`
1117
1131
  Configures documents for a specific name.
1118
1132
 
@@ -1126,9 +1140,8 @@ Configures documents for a specific name.
1126
1140
 
1127
1141
  **Example**:
1128
1142
  ```Typescript
1129
- crudService.configDocs('myConfig', (doc, container) => { /* config logic */ }, () => { /* reset logic */ });
1143
+ workService.configDocs('myConfig', (doc, container) => { /* config logic */ }, () => { /* reset logic */ });
1130
1144
  ```
1131
-
1132
1145
  #### `getConfigedDocs(name: string): unknown`
1133
1146
  Retrieves the configured documents for a specific name.
1134
1147
 
@@ -1140,9 +1153,8 @@ Retrieves the configured documents for a specific name.
1140
1153
 
1141
1154
  **Example**:
1142
1155
  ```Typescript
1143
- const configedDocs = crudService.getConfigedDocs('myConfig');
1156
+ const configedDocs = workService.getConfigedDocs('myConfig');
1144
1157
  ```
1145
-
1146
1158
  #### `reconfigureDocs(name: string = ''): void`
1147
1159
  Reconfigures documents for a specific name or all names.
1148
1160
 
@@ -1151,9 +1163,8 @@ Reconfigures documents for a specific name or all names.
1151
1163
 
1152
1164
  **Example**:
1153
1165
  ```Typescript
1154
- crudService.reconfigureDocs('myConfig');
1166
+ workService.reconfigureDocs('myConfig');
1155
1167
  ```
1156
-
1157
1168
  #### `setPerPage(_perPage: number): void`
1158
1169
  Sets the number of documents per page.
1159
1170
 
@@ -1162,9 +1173,8 @@ Sets the number of documents per page.
1162
1173
 
1163
1174
  **Example**:
1164
1175
  ```Typescript
1165
- crudService.setPerPage(10);
1176
+ workService.setPerPage(10);
1166
1177
  ```
1167
-
1168
1178
  #### `get(config: GetConfig = {}, options: CrudOptions<Document> = {}): Observable<Document[]>`
1169
1179
  Retrieves documents from the API.
1170
1180
 
@@ -1177,9 +1187,8 @@ Retrieves documents from the API.
1177
1187
 
1178
1188
  **Example**:
1179
1189
  ```Typescript
1180
- crudService.get({ page: 1 }, { callback: (docs) => console.log(docs) });
1190
+ workService.get({ page: 1 }, { callback: (docs) => console.log(docs) });
1181
1191
  ```
1182
-
1183
1192
  #### `create(doc: Document, options: CrudOptions<Document> = {}): Observable<Document> | void`
1184
1193
  Creates a new document in the API.
1185
1194
 
@@ -1192,9 +1201,8 @@ Creates a new document in the API.
1192
1201
 
1193
1202
  **Example**:
1194
1203
  ```Typescript
1195
- crudService.create(newDoc, { callback: (doc) => console.log(doc) });
1204
+ workService.create(newDoc, { callback: (doc) => console.log(doc) });
1196
1205
  ```
1197
-
1198
1206
  #### `fetch(query: object = {}, options: CrudOptions<Document> = {}): Observable<Document>`
1199
1207
  Fetches a document from the API based on a query.
1200
1208
 
@@ -1207,9 +1215,8 @@ Fetches a document from the API based on a query.
1207
1215
 
1208
1216
  **Example**:
1209
1217
  ```Typescript
1210
- crudService.fetch({ name: 'example' }, { callback: (doc) => console.log(doc) });
1218
+ workService.fetch({ name: 'example' }, { callback: (doc) => console.log(doc) });
1211
1219
  ```
1212
-
1213
1220
  #### `updateAfterWhile(doc: Document, options: CrudOptions<Document> = {}): void`
1214
1221
  Updates a document after a specified delay.
1215
1222
 
@@ -1219,9 +1226,8 @@ Updates a document after a specified delay.
1219
1226
 
1220
1227
  **Example**:
1221
1228
  ```Typescript
1222
- crudService.updateAfterWhile(doc, { callback: (doc) => console.log(doc) });
1229
+ workService.updateAfterWhile(doc, { callback: (doc) => console.log(doc) });
1223
1230
  ```
1224
-
1225
1231
  #### `update(doc: Document, options: CrudOptions<Document> = {}): Observable<Document>`
1226
1232
  Updates a document in the API.
1227
1233
 
@@ -1234,9 +1240,8 @@ Updates a document in the API.
1234
1240
 
1235
1241
  **Example**:
1236
1242
  ```Typescript
1237
- crudService.update(doc, { callback: (doc) => console.log(doc) });
1243
+ workService.update(doc, { callback: (doc) => console.log(doc) });
1238
1244
  ```
1239
-
1240
1245
  #### `delete(doc: Document, options: CrudOptions<Document> = {}): Observable<Document>`
1241
1246
  Deletes a document from the API.
1242
1247
 
@@ -1249,12 +1254,12 @@ Deletes a document from the API.
1249
1254
 
1250
1255
  **Example**:
1251
1256
  ```Typescript
1252
- crudService.delete(doc, { callback: (doc) => console.log(doc) });
1257
+ workService.delete(doc, { callback: (doc) => console.log(doc) });
1253
1258
  ```
1254
-
1255
1259
  ### Interfaces
1256
1260
  #### `CrudDocument`
1257
1261
  Represents a CRUD document.
1262
+
1258
1263
  **Properties**:
1259
1264
  - `_id` (string): The document ID.
1260
1265
  - `__created` (boolean): Indicates if the document is created.
@@ -1268,6 +1273,58 @@ interface CrudDocument {
1268
1273
  __modified: boolean;
1269
1274
  }
1270
1275
  ```
1276
+ ### Code sample use
1277
+ ```Typescript
1278
+ import { Injectable } from '@angular/core';
1279
+ import {
1280
+ AlertService,
1281
+ CoreService,
1282
+ HttpService,
1283
+ StoreService,
1284
+ CrudService,
1285
+ CrudDocument
1286
+ } from 'wacom';
1287
+
1288
+ export interface Work extends CrudDocument {
1289
+ name: string;
1290
+ description: string;
1291
+ }
1292
+
1293
+ @Injectable({
1294
+ providedIn: 'root'
1295
+ })
1296
+ export class WorkService extends CrudService<Work> {
1297
+ works: Work[] = [];
1298
+ constructor(
1299
+ _http: HttpService,
1300
+ _store: StoreService,
1301
+ _alert: AlertService,
1302
+ _core: CoreService
1303
+ ) {
1304
+ super(
1305
+ {
1306
+ name: 'work'
1307
+ },
1308
+ _http,
1309
+ _store,
1310
+ _alert,
1311
+ _core
1312
+ );
1313
+ this.get().subscribe((works: Work[]) =>
1314
+ this.works.push(...works)
1315
+ );
1316
+ _core.on('work_create', (work: Work) => {
1317
+ this.works.push(work);
1318
+ });
1319
+ _core.on('work_delete', (work: Work) => {
1320
+ this.works.splice(
1321
+ this.works.findIndex((o) => o._id === work._id),
1322
+ 1
1323
+ );
1324
+ });
1325
+ }
1326
+ }
1327
+ ```
1271
1328
 
1272
1329
 
1273
1330
  ## [File Service](#file-service)
@@ -22,18 +22,36 @@ export class MetaGuard {
22
22
  if (meta.disableUpdate) {
23
23
  return;
24
24
  }
25
- this.metaService.setTitle(meta.title, meta.titleSuffix);
26
- this.metaService.setLink(meta.link);
27
- Object.keys(meta).forEach(prop => {
28
- if (prop === 'title' || prop === 'titleSuffix' || prop === 'link') {
25
+ if (meta.title) {
26
+ this.metaService.setTitle(meta.title, meta.titleSuffix);
27
+ }
28
+ if (Array.isArray(meta.links)) {
29
+ this.metaService.setLink(meta.links);
30
+ }
31
+ else if (typeof meta.links === 'string') {
32
+ this.metaService.setLink(meta.links.split(' '));
33
+ }
34
+ if (Array.isArray(this._meta.defaults?.links)) {
35
+ this.metaService.setLink(this._meta.defaults?.links);
36
+ }
37
+ else if (typeof this._meta.defaults?.links === 'string') {
38
+ this.metaService.setLink(this._meta.defaults?.links.split(' '));
39
+ }
40
+ Object.keys(meta).forEach((prop) => {
41
+ if (prop === 'title' ||
42
+ prop === 'titleSuffix' ||
43
+ prop === 'links') {
29
44
  return;
30
45
  }
31
- Object.keys(meta[prop]).forEach(key => {
46
+ Object.keys(meta[prop]).forEach((key) => {
32
47
  this.metaService.setTag(key, meta[prop][key], prop);
33
48
  });
34
49
  });
35
- Object.keys(this._meta.defaults).forEach(key => {
36
- if (key in meta || key === 'title' || key === 'titleSuffix' || key === 'link') {
50
+ Object.keys(this._meta.defaults).forEach((key) => {
51
+ if (key in meta ||
52
+ key === 'title' ||
53
+ key === 'titleSuffix' ||
54
+ key === 'links') {
37
55
  return;
38
56
  }
39
57
  this.metaService.setTag(key, this._meta.defaults[key]);
@@ -50,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
50
68
  }, {
51
69
  type: Optional
52
70
  }] }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvZ3VhcmQvbWV0YS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLFlBQVksRUFBVSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRzVFLE1BQU0sT0FBTyxTQUFTO0lBR007SUFDZ0I7SUFIcEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDL0IsS0FBSyxDQUFPO0lBQ3BCLFlBQTJCLFdBQXdCLEVBQ1IsTUFBYztRQUQ5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO0lBQy9DLENBQUM7SUFDTSxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUMzRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBQ08scUJBQXFCLENBQUMsT0FBWSxFQUFFO1FBQzNDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssYUFBYSxJQUFHLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDbEUsT0FBTztZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLE9BQU8sSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDL0UsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7dUdBaENXLFNBQVMsNkNBSVosWUFBWTsyR0FKVCxTQUFTOzsyRkFBVCxTQUFTO2tCQURyQixVQUFVOzswQkFLUixNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNZXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGEuc2VydmljZSc7XHJcbmltcG9ydCB7IENPTkZJR19UT0tFTiwgQ29uZmlnLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1ldGFHdWFyZCAge1xyXG5cdHB1YmxpYyBzdGF0aWMgSURFTlRJRklFUiA9ICdNZXRhR3VhcmQnO1xyXG5cdHByaXZhdGUgX21ldGE6IGFueSA7XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbWV0YVNlcnZpY2U6IE1ldGFTZXJ2aWNlLFxyXG5cdFx0QEluamVjdChDT05GSUdfVE9LRU4pIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuXHRcdHRoaXMuX21ldGEgPSBjb25maWcubWV0YTtcclxuXHRcdGlmKCF0aGlzLmNvbmZpZykgdGhpcy5jb25maWcgPSBERUZBVUxUX0NPTkZJRztcclxuXHR9XHJcblx0cHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xyXG5cdFx0dGhpcy5fcHJvY2Vzc1JvdXRlTWV0YVRhZ3Mocm91dGUuZGF0YSAmJiByb3V0ZS5kYXRhWydtZXRhJ10pO1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cdHByaXZhdGUgX3Byb2Nlc3NSb3V0ZU1ldGFUYWdzKG1ldGE6IGFueSA9IHt9KSB7XHJcblx0XHRpZiAobWV0YS5kaXNhYmxlVXBkYXRlKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubWV0YVNlcnZpY2Uuc2V0VGl0bGUobWV0YS50aXRsZSwgbWV0YS50aXRsZVN1ZmZpeCk7XHJcblx0XHR0aGlzLm1ldGFTZXJ2aWNlLnNldExpbmsobWV0YS5saW5rKTtcclxuXHRcdE9iamVjdC5rZXlzKG1ldGEpLmZvckVhY2gocHJvcCA9PiB7XHJcblx0XHRcdGlmIChwcm9wID09PSAndGl0bGUnIHx8IHByb3AgPT09ICd0aXRsZVN1ZmZpeCd8fCBwcm9wID09PSAnbGluaycpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0T2JqZWN0LmtleXMobWV0YVtwcm9wXSkuZm9yRWFjaChrZXkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubWV0YVNlcnZpY2Uuc2V0VGFnKGtleSwgbWV0YVtwcm9wXVtrZXldLCBwcm9wKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuX21ldGEuZGVmYXVsdHMpLmZvckVhY2goa2V5ID0+IHtcclxuXHRcdFx0aWYgKGtleSBpbiBtZXRhIHx8IGtleSA9PT0gJ3RpdGxlJyB8fCBrZXkgPT09ICd0aXRsZVN1ZmZpeCcgfHwga2V5ID09PSAnbGluaycpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5tZXRhU2VydmljZS5zZXRUYWcoa2V5LCB0aGlzLl9tZXRhLmRlZmF1bHRzW2tleV0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvZ3VhcmQvbWV0YS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLFlBQVksRUFBVSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRzVFLE1BQU0sT0FBTyxTQUFTO0lBSVo7SUFDa0M7SUFKcEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDL0IsS0FBSyxDQUFNO0lBQ25CLFlBQ1MsV0FBd0IsRUFDVSxNQUFjO1FBRGhELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ1UsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUV4RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUNNLFdBQVcsQ0FDakIsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUNPLHFCQUFxQixDQUFDLE9BQVksRUFBRTtRQUMzQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEMsSUFDQyxJQUFJLEtBQUssT0FBTztnQkFDaEIsSUFBSSxLQUFLLGFBQWE7Z0JBQ3RCLElBQUksS0FBSyxPQUFPLEVBQ2YsQ0FBQztnQkFDRixPQUFPO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoRCxJQUNDLEdBQUcsSUFBSSxJQUFJO2dCQUNYLEdBQUcsS0FBSyxPQUFPO2dCQUNmLEdBQUcsS0FBSyxhQUFhO2dCQUNyQixHQUFHLEtBQUssT0FBTyxFQUNkLENBQUM7Z0JBQ0YsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7dUdBekRXLFNBQVMsNkNBS1osWUFBWTsyR0FMVCxTQUFTOzsyRkFBVCxTQUFTO2tCQURyQixVQUFVOzswQkFNUixNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNZXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGEuc2VydmljZSc7XHJcbmltcG9ydCB7IENPTkZJR19UT0tFTiwgQ29uZmlnLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1ldGFHdWFyZCB7XHJcblx0cHVibGljIHN0YXRpYyBJREVOVElGSUVSID0gJ01ldGFHdWFyZCc7XHJcblx0cHJpdmF0ZSBfbWV0YTogYW55O1xyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWV0YVNlcnZpY2U6IE1ldGFTZXJ2aWNlLFxyXG5cdFx0QEluamVjdChDT05GSUdfVE9LRU4pIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBDb25maWdcclxuXHQpIHtcclxuXHRcdHRoaXMuX21ldGEgPSBjb25maWcubWV0YTtcclxuXHRcdGlmICghdGhpcy5jb25maWcpIHRoaXMuY29uZmlnID0gREVGQVVMVF9DT05GSUc7XHJcblx0fVxyXG5cdHB1YmxpYyBjYW5BY3RpdmF0ZShcclxuXHRcdHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG5cdFx0c3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3RcclxuXHQpOiBib29sZWFuIHtcclxuXHRcdHRoaXMuX3Byb2Nlc3NSb3V0ZU1ldGFUYWdzKHJvdXRlLmRhdGEgJiYgcm91dGUuZGF0YVsnbWV0YSddKTtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHRwcml2YXRlIF9wcm9jZXNzUm91dGVNZXRhVGFncyhtZXRhOiBhbnkgPSB7fSkge1xyXG5cdFx0aWYgKG1ldGEuZGlzYWJsZVVwZGF0ZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAobWV0YS50aXRsZSkge1xyXG5cdFx0XHR0aGlzLm1ldGFTZXJ2aWNlLnNldFRpdGxlKG1ldGEudGl0bGUsIG1ldGEudGl0bGVTdWZmaXgpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkobWV0YS5saW5rcykpIHtcclxuXHRcdFx0dGhpcy5tZXRhU2VydmljZS5zZXRMaW5rKG1ldGEubGlua3MpO1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgbWV0YS5saW5rcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0dGhpcy5tZXRhU2VydmljZS5zZXRMaW5rKG1ldGEubGlua3Muc3BsaXQoJyAnKSk7XHJcblx0XHR9XHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9tZXRhLmRlZmF1bHRzPy5saW5rcykpIHtcclxuXHRcdFx0dGhpcy5tZXRhU2VydmljZS5zZXRMaW5rKHRoaXMuX21ldGEuZGVmYXVsdHM/LmxpbmtzKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX21ldGEuZGVmYXVsdHM/LmxpbmtzID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHR0aGlzLm1ldGFTZXJ2aWNlLnNldExpbmsodGhpcy5fbWV0YS5kZWZhdWx0cz8ubGlua3Muc3BsaXQoJyAnKSk7XHJcblx0XHR9XHJcblx0XHRPYmplY3Qua2V5cyhtZXRhKS5mb3JFYWNoKChwcm9wKSA9PiB7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHRwcm9wID09PSAndGl0bGUnIHx8XHJcblx0XHRcdFx0cHJvcCA9PT0gJ3RpdGxlU3VmZml4JyB8fFxyXG5cdFx0XHRcdHByb3AgPT09ICdsaW5rcydcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdE9iamVjdC5rZXlzKG1ldGFbcHJvcF0pLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubWV0YVNlcnZpY2Uuc2V0VGFnKGtleSwgbWV0YVtwcm9wXVtrZXldLCBwcm9wKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuX21ldGEuZGVmYXVsdHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0a2V5IGluIG1ldGEgfHxcclxuXHRcdFx0XHRrZXkgPT09ICd0aXRsZScgfHxcclxuXHRcdFx0XHRrZXkgPT09ICd0aXRsZVN1ZmZpeCcgfHxcclxuXHRcdFx0XHRrZXkgPT09ICdsaW5rcydcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMubWV0YVNlcnZpY2Uuc2V0VGFnKGtleSwgdGhpcy5fbWV0YS5kZWZhdWx0c1trZXldKTtcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -5,6 +5,8 @@ export class UiService {
5
5
  core;
6
6
  variables = {};
7
7
  _forms = {};
8
+ // global variable use for design purposes
9
+ var = {};
8
10
  constructor(core) {
9
11
  this.core = core;
10
12
  const storedVariables = this.core.localStorage.getItem('css_variables');
@@ -192,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
192
194
  providedIn: 'root',
193
195
  }]
194
196
  }], ctorParameters: () => [{ type: i1.CoreService }] });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLFNBQVM7SUFJRDtJQUhaLFNBQVMsR0FBOEIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sR0FBMkIsRUFBRSxDQUFDO0lBRTVDLFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDcEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDRixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLEVBQVU7UUFDckIsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7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RSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQzt1R0FsTFcsU0FBUzsyR0FBVCxTQUFTLGNBRlQsTUFBTTs7MkZBRU4sU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpU2VydmljZSB7XHJcblx0cHJpdmF0ZSB2YXJpYWJsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHRwcml2YXRlIF9mb3JtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGNvcmU6IENvcmVTZXJ2aWNlKSB7XHJcblx0XHRjb25zdCBzdG9yZWRWYXJpYWJsZXMgPSB0aGlzLmNvcmUubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nzc192YXJpYWJsZXMnKTtcclxuXHRcdHRoaXMudmFyaWFibGVzID0gc3RvcmVkVmFyaWFibGVzID8gSlNPTi5wYXJzZShzdG9yZWRWYXJpYWJsZXMpIDoge307XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnZhcmlhYmxlcykge1xyXG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KGtleSwgdGhpcy52YXJpYWJsZXNba2V5XSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiBGb3JtcyBNYW5hZ2VtZW50ICovXHJcblx0LyoqXHJcblx0ICogTWFuYWdlcyBmb3JtIHN0YXRlcy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBpZCAtIFRoZSBmb3JtIGlkZW50aWZpZXIuXHJcblx0ICogQHJldHVybnMgVGhlIGZvcm0gc3RhdGUgb2JqZWN0LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmb3JtKGlkOiBzdHJpbmcpOiBhbnkge1xyXG5cdFx0aWYgKHR5cGVvZiBpZCAhPT0gJ3N0cmluZycpIHJldHVybiB7fTtcclxuXHRcdGlmICghdGhpcy5fZm9ybXNbaWRdKSB0aGlzLl9mb3Jtc1tpZF0gPSB7fTtcclxuXHRcdHJldHVybiB0aGlzLl9mb3Jtc1tpZF07XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBWYWxpZGF0ZXMgaW5wdXQgdmFsdWVzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgdHlwZS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZS5cclxuXHQgKiBAcGFyYW0ga2luZCAtIFRoZSB0eXBlIG9mIHZhbGlkYXRpb24uXHJcblx0ICogQHBhcmFtIGV4dHJhIC0gQWRkaXRpb25hbCB2YWxpZGF0aW9uIGNyaXRlcmlhLlxyXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuXHJcblx0ICovXHJcblx0cHVibGljIHZhbGlkKHZhbHVlOiBhbnksIGtpbmQgPSAnZW1haWwnLCBleHRyYSA9IDApOiBib29sZWFuIHtcclxuXHRcdGNvbnN0IHZhbGlkYXRvcnM6IHsgW2tleTogc3RyaW5nXTogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW4gfSA9IHtcclxuXHRcdFx0ZW1haWw6ICh2YWx1ZSkgPT4gL15cXHcrKFtcXC4tXT9cXHcrKSpAXFx3KyhbXFwuLV0/XFx3KykqKFxcLlxcd3syLDEwfSkrJC8udGVzdCh2YWx1ZSB8fCAnJyksXHJcblx0XHRcdHRleHQ6ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyxcclxuXHRcdFx0YXJyYXk6ICh2YWx1ZSkgPT4gQXJyYXkuaXNBcnJheSh2YWx1ZSksXHJcblx0XHRcdG9iamVjdDogKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZSAhPT0gbnVsbCxcclxuXHRcdFx0bnVtYmVyOiAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicsXHJcblx0XHRcdHBhc3N3b3JkOiAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRpZiAoIXZhbHVlKSByZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0c3dpdGNoIChleHRyYSkge1xyXG5cdFx0XHRcdFx0Y2FzZSAxOlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gL14oKD89LipbYS16XSkoPz0uKlswLTldKSl8KCg/PS4qW0EtWl0pKD89LipbMC05XSkpLy50ZXN0KHZhbHVlIHx8ICcnKTtcclxuXHRcdFx0XHRcdGNhc2UgMjpcclxuXHRcdFx0XHRcdFx0cmV0dXJuIC9eKCgoPz0uKlthLXpdKSg/PS4qWzAtOV0pKXwoKD89LipbQS1aXSkoPz0uKlswLTldKSkpKD89Lns4LH0pLy50ZXN0KHZhbHVlIHx8ICcnKTtcclxuXHRcdFx0XHRcdGNhc2UgMzpcclxuXHRcdFx0XHRcdFx0cmV0dXJuIC9eKCg/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlswLTldKSkoPz0uezgsfSkvLnRlc3QodmFsdWUgfHwgJycpO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gL14oKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qWzAtOV0pKD89LipbQCMkJSYhLV9dKSkoPz0uezgsfSkvLnRlc3QodmFsdWUgfHwgJycpO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdFx0cmV0dXJuICEhdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB2YWxpZGF0b3JzW2tpbmRdID8gdmFsaWRhdG9yc1traW5kXSh2YWx1ZSkgOiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERldGVybWluZXMgdGhlIHN0cmVuZ3RoIG9mIGEgcGFzc3dvcmQuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGFzc3dvcmQgdG8gZXZhbHVhdGUuXHJcblx0ICogQHJldHVybnMgVGhlIHN0cmVuZ3RoIGxldmVsIG9mIHRoZSBwYXNzd29yZC5cclxuXHQgKi9cclxuXHRwdWJsaWMgbGV2ZWwodmFsdWUgPSAnJyk6IG51bWJlciB7XHJcblx0XHRpZiAoIXZhbHVlKSByZXR1cm4gMDtcclxuXHRcdGxldCBsZXZlbCA9IDA7XHJcblx0XHRpZiAodmFsdWUubGVuZ3RoID4gOCkgbGV2ZWwrKztcclxuXHRcdGlmICgvW2Etel0vLnRlc3QodmFsdWUpKSBsZXZlbCsrO1xyXG5cdFx0aWYgKC9bQS1aXS8udGVzdCh2YWx1ZSkpIGxldmVsKys7XHJcblx0XHRpZiAoL1sxLTldLy50ZXN0KHZhbHVlKSkgbGV2ZWwrKztcclxuXHRcdGlmICgvW2AhQCMkJV4mKigpXytcXC09XFxbXFxde307JzpcIlxcXFx8LC48PlxcLz9+XS8udGVzdCh2YWx1ZSkpIGxldmVsKys7XHJcblx0XHRyZXR1cm4gbGV2ZWw7XHJcblx0fVxyXG5cclxuXHQvKiBDU1MgTWFuYWdlbWVudCAqL1xyXG5cdC8qKlxyXG5cdCAqIFNhdmVzIHRoZSBDU1MgdmFyaWFibGVzIHRvIGxvY2FsIHN0b3JhZ2UuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzYXZlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jb3JlLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjc3NfdmFyaWFibGVzJywgSlNPTi5zdHJpbmdpZnkodGhpcy52YXJpYWJsZXMpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgYSBDU1MgdmFyaWFibGUuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ga2V5IC0gVGhlIENTUyB2YXJpYWJsZSBuYW1lLlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBDU1MgdmFyaWFibGUgdmFsdWUuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dGhpcy5jb3JlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgbXVsdGlwbGUgQ1NTIHZhcmlhYmxlcy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YXJpYWJsZXMgLSBUaGUgQ1NTIHZhcmlhYmxlcyB0byBzZXQuXHJcblx0ICogQHBhcmFtIG9wdHMgLSBPcHRpb25zIGZvciBzZXR0aW5nIHRoZSB2YXJpYWJsZXMuXHJcblx0ICovXHJcblx0cHVibGljIHNldCh2YXJpYWJsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIG9wdHM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHRpZiAodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdG9wdHMgPSBvcHRzID09PSAnbG9jYWwnID8geyBsb2NhbDogdHJ1ZSB9IDogeyBob3N0OiBvcHRzIH07XHJcblx0XHR9XHJcblx0XHRpZiAob3B0cy5ob3N0ICYmIHRoaXMuY29yZS53aW5kb3cubG9jYXRpb24uaG9zdCAhPT0gb3B0cy5ob3N0KSByZXR1cm47XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB2YXJpYWJsZXMpIHtcclxuXHRcdFx0aWYgKG9wdHMubG9jYWwpIHtcclxuXHRcdFx0XHR0aGlzLnZhcmlhYmxlc1trZXldID0gdmFyaWFibGVzW2tleV07XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZXNba2V5XSkge1xyXG5cdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoa2V5LCB2YXJpYWJsZXNba2V5XSk7XHJcblx0XHR9XHJcblx0XHRpZiAob3B0cy5sb2NhbCkgdGhpcy5zYXZlKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXRyaWV2ZXMgdGhlIHN0b3JlZCBDU1MgdmFyaWFibGVzLlxyXG5cdCAqXHJcblx0ICogQHJldHVybnMgVGhlIHN0b3JlZCBDU1MgdmFyaWFibGVzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XHJcblx0XHRyZXR1cm4gdGhpcy52YXJpYWJsZXM7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdmVzIHNwZWNpZmllZCBDU1MgdmFyaWFibGVzLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGtleXMgLSBUaGUga2V5cyBvZiB0aGUgQ1NTIHZhcmlhYmxlcyB0byByZW1vdmUuXHJcblx0ICovXHJcblx0cHVibGljIHJlbW92ZShrZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG5cdFx0Y29uc3Qga2V5QXJyYXkgPSBBcnJheS5pc0FycmF5KGtleXMpID8ga2V5cyA6IGtleXMuc3BsaXQoJyAnKTtcclxuXHRcdGZvciAoY29uc3Qga2V5IG9mIGtleUFycmF5KSB7XHJcblx0XHRcdGRlbGV0ZSB0aGlzLnZhcmlhYmxlc1trZXldO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zYXZlKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZW5lcmF0ZXMgYW4gYXJyYXkgb2Ygc2FtcGxlIGRhdGEuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYXJyTGVuIC0gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuXHJcblx0ICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiBkYXRhIHRvIGdlbmVyYXRlLlxyXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHNhbXBsZSBkYXRhLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhcnIoYXJyTGVuID0gMTAsIHR5cGU6IHN0cmluZyA9ICdudW1iZXInKTogYW55W10ge1xyXG5cdFx0Y29uc3QgYXJyID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFyckxlbjsgaSsrKSB7XHJcblx0XHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRcdGNhc2UgJ251bWJlcic6XHJcblx0XHRcdFx0XHRhcnIucHVzaChpICsgMSk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlICd0ZXh0JzpcclxuXHRcdFx0XHRcdGFyci5wdXNoKHRoaXMudGV4dCgpKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgJ2RhdGUnOlxyXG5cdFx0XHRcdFx0YXJyLnB1c2gobmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyBpICogODY0MDAwMDApKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHRhcnIucHVzaCh0eXBlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFycjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdlbmVyYXRlcyBhIHJhbmRvbSB0ZXh0IHN0cmluZy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBsZW5ndGggLSBUaGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IHN0cmluZy5cclxuXHQgKiBAcmV0dXJucyBBIHJhbmRvbSB0ZXh0IHN0cmluZy5cclxuXHQgKi9cclxuXHRwdWJsaWMgdGV4dChsZW5ndGggPSAxMCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcclxuXHRcdGxldCByZXN1bHQgPSAnJztcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0cmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxufVxyXG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLFNBQVM7SUFNRDtJQUxaLFNBQVMsR0FBOEIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sR0FBMkIsRUFBRSxDQUFDO0lBQzVDLDBDQUEwQztJQUMxQyxHQUFHLEdBQTRCLEVBQUUsQ0FBQztJQUVsQyxZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BFLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0YsQ0FBQztJQUVELHNCQUFzQjtJQUN0Qjs7Ozs7T0FLRztJQUNJLElBQUksQ0FBQyxFQUFVO1FBQ3JCLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0s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LENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7dUdBcExXLFNBQVM7MkdBQVQsU0FBUyxjQUZULE1BQU07OzJGQUVOLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4vY29yZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVNlcnZpY2Uge1xyXG5cdHByaXZhdGUgdmFyaWFibGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblx0cHJpdmF0ZSBfZm9ybXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHQvLyBnbG9iYWwgdmFyaWFibGUgdXNlIGZvciBkZXNpZ24gcHVycG9zZXNcclxuXHR2YXI6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgY29yZTogQ29yZVNlcnZpY2UpIHtcclxuXHRcdGNvbnN0IHN0b3JlZFZhcmlhYmxlcyA9IHRoaXMuY29yZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3NzX3ZhcmlhYmxlcycpO1xyXG5cdFx0dGhpcy52YXJpYWJsZXMgPSBzdG9yZWRWYXJpYWJsZXMgPyBKU09OLnBhcnNlKHN0b3JlZFZhcmlhYmxlcykgOiB7fTtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMudmFyaWFibGVzKSB7XHJcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoa2V5LCB0aGlzLnZhcmlhYmxlc1trZXldKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qIEZvcm1zIE1hbmFnZW1lbnQgKi9cclxuXHQvKipcclxuXHQgKiBNYW5hZ2VzIGZvcm0gc3RhdGVzLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGlkIC0gVGhlIGZvcm0gaWRlbnRpZmllci5cclxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybSBzdGF0ZSBvYmplY3QuXHJcblx0ICovXHJcblx0cHVibGljIGZvcm0oaWQ6IHN0cmluZyk6IGFueSB7XHJcblx0XHRpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykgcmV0dXJuIHt9O1xyXG5cdFx0aWYgKCF0aGlzLl9mb3Jtc1tpZF0pIHRoaXMuX2Zvcm1zW2lkXSA9IHt9O1xyXG5cdFx0cmV0dXJuIHRoaXMuX2Zvcm1zW2lkXTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFZhbGlkYXRlcyBpbnB1dCB2YWx1ZXMgYmFzZWQgb24gdGhlIHNwZWNpZmllZCB0eXBlLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHZhbGlkYXRlLlxyXG5cdCAqIEBwYXJhbSBraW5kIC0gVGhlIHR5cGUgb2YgdmFsaWRhdGlvbi5cclxuXHQgKiBAcGFyYW0gZXh0cmEgLSBBZGRpdGlvbmFsIHZhbGlkYXRpb24gY3JpdGVyaWEuXHJcblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgdmFsaWQodmFsdWU6IGFueSwga2luZCA9ICdlbWFpbCcsIGV4dHJhID0gMCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3QgdmFsaWRhdG9yczogeyBba2V5OiBzdHJpbmddOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbiB9ID0ge1xyXG5cdFx0XHRlbWFpbDogKHZhbHVlKSA9PiAvXlxcdysoW1xcLi1dP1xcdyspKkBcXHcrKFtcXC4tXT9cXHcrKSooXFwuXFx3ezIsMTB9KSskLy50ZXN0KHZhbHVlIHx8ICcnKSxcclxuXHRcdFx0dGV4dDogKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnLFxyXG5cdFx0XHRhcnJheTogKHZhbHVlKSA9PiBBcnJheS5pc0FycmF5KHZhbHVlKSxcclxuXHRcdFx0b2JqZWN0OiAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlICE9PSBudWxsLFxyXG5cdFx0XHRudW1iZXI6ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyxcclxuXHRcdFx0cGFzc3dvcmQ6ICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRzd2l0Y2ggKGV4dHJhKSB7XHJcblx0XHRcdFx0XHRjYXNlIDE6XHJcblx0XHRcdFx0XHRcdHJldHVybiAvXigoPz0uKlthLXpdKSg/PS4qWzAtOV0pKXwoKD89LipbQS1aXSkoPz0uKlswLTldKSkvLnRlc3QodmFsdWUgfHwgJycpO1xyXG5cdFx0XHRcdFx0Y2FzZSAyOlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gL14oKCg/PS4qW2Etel0pKD89LipbMC05XSkpfCgoPz0uKltBLVpdKSg/PS4qWzAtOV0pKSkoPz0uezgsfSkvLnRlc3QodmFsdWUgfHwgJycpO1xyXG5cdFx0XHRcdFx0Y2FzZSAzOlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gL14oKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qWzAtOV0pKSg/PS57OCx9KS8udGVzdCh2YWx1ZSB8fCAnJyk7XHJcblx0XHRcdFx0XHRjYXNlIDQ6XHJcblx0XHRcdFx0XHRcdHJldHVybiAvXigoPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipbMC05XSkoPz0uKltAIyQlJiEtX10pKSg/PS57OCx9KS8udGVzdCh2YWx1ZSB8fCAnJyk7XHJcblx0XHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gISF2YWx1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHZhbGlkYXRvcnNba2luZF0gPyB2YWxpZGF0b3JzW2tpbmRdKHZhbHVlKSA6IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGV0ZXJtaW5lcyB0aGUgc3RyZW5ndGggb2YgYSBwYXNzd29yZC5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBwYXNzd29yZCB0byBldmFsdWF0ZS5cclxuXHQgKiBAcmV0dXJucyBUaGUgc3RyZW5ndGggbGV2ZWwgb2YgdGhlIHBhc3N3b3JkLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBsZXZlbCh2YWx1ZSA9ICcnKTogbnVtYmVyIHtcclxuXHRcdGlmICghdmFsdWUpIHJldHVybiAwO1xyXG5cdFx0bGV0IGxldmVsID0gMDtcclxuXHRcdGlmICh2YWx1ZS5sZW5ndGggPiA4KSBsZXZlbCsrO1xyXG5cdFx0aWYgKC9bYS16XS8udGVzdCh2YWx1ZSkpIGxldmVsKys7XHJcblx0XHRpZiAoL1tBLVpdLy50ZXN0KHZhbHVlKSkgbGV2ZWwrKztcclxuXHRcdGlmICgvWzEtOV0vLnRlc3QodmFsdWUpKSBsZXZlbCsrO1xyXG5cdFx0aWYgKC9bYCFAIyQlXiYqKClfK1xcLT1cXFtcXF17fTsnOlwiXFxcXHwsLjw+XFwvP35dLy50ZXN0KHZhbHVlKSkgbGV2ZWwrKztcclxuXHRcdHJldHVybiBsZXZlbDtcclxuXHR9XHJcblxyXG5cdC8qIENTUyBNYW5hZ2VtZW50ICovXHJcblx0LyoqXHJcblx0ICogU2F2ZXMgdGhlIENTUyB2YXJpYWJsZXMgdG8gbG9jYWwgc3RvcmFnZS5cclxuXHQgKi9cclxuXHRwcml2YXRlIHNhdmUoKTogdm9pZCB7XHJcblx0XHR0aGlzLmNvcmUubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Nzc192YXJpYWJsZXMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnZhcmlhYmxlcykpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBhIENTUyB2YXJpYWJsZS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBrZXkgLSBUaGUgQ1NTIHZhcmlhYmxlIG5hbWUuXHJcblx0ICogQHBhcmFtIHZhbHVlIC0gVGhlIENTUyB2YXJpYWJsZSB2YWx1ZS5cclxuXHQgKi9cclxuXHRwcml2YXRlIHNldFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHR0aGlzLmNvcmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBtdWx0aXBsZSBDU1MgdmFyaWFibGVzLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhcmlhYmxlcyAtIFRoZSBDU1MgdmFyaWFibGVzIHRvIHNldC5cclxuXHQgKiBAcGFyYW0gb3B0cyAtIE9wdGlvbnMgZm9yIHNldHRpbmcgdGhlIHZhcmlhYmxlcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgc2V0KHZhcmlhYmxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgb3B0czogYW55ID0ge30pOiB2b2lkIHtcclxuXHRcdGlmICh0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0b3B0cyA9IG9wdHMgPT09ICdsb2NhbCcgPyB7IGxvY2FsOiB0cnVlIH0gOiB7IGhvc3Q6IG9wdHMgfTtcclxuXHRcdH1cclxuXHRcdGlmIChvcHRzLmhvc3QgJiYgdGhpcy5jb3JlLndpbmRvdy5sb2NhdGlvbi5ob3N0ICE9PSBvcHRzLmhvc3QpIHJldHVybjtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHZhcmlhYmxlcykge1xyXG5cdFx0XHRpZiAob3B0cy5sb2NhbCkge1xyXG5cdFx0XHRcdHRoaXMudmFyaWFibGVzW2tleV0gPSB2YXJpYWJsZXNba2V5XTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlc1trZXldKSB7XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShrZXksIHZhcmlhYmxlc1trZXldKTtcclxuXHRcdH1cclxuXHRcdGlmIChvcHRzLmxvY2FsKSB0aGlzLnNhdmUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHJpZXZlcyB0aGUgc3RvcmVkIENTUyB2YXJpYWJsZXMuXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyBUaGUgc3RvcmVkIENTUyB2YXJpYWJsZXMuXHJcblx0ICovXHJcblx0cHVibGljIGdldCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcclxuXHRcdHJldHVybiB0aGlzLnZhcmlhYmxlcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZXMgc3BlY2lmaWVkIENTUyB2YXJpYWJsZXMuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0ga2V5cyAtIFRoZSBrZXlzIG9mIHRoZSBDU1MgdmFyaWFibGVzIHRvIHJlbW92ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlKGtleXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcblx0XHRjb25zdCBrZXlBcnJheSA9IEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDoga2V5cy5zcGxpdCgnICcpO1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgb2Yga2V5QXJyYXkpIHtcclxuXHRcdFx0ZGVsZXRlIHRoaXMudmFyaWFibGVzW2tleV07XHJcblx0XHR9XHJcblx0XHR0aGlzLnNhdmUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdlbmVyYXRlcyBhbiBhcnJheSBvZiBzYW1wbGUgZGF0YS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBhcnJMZW4gLSBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheS5cclxuXHQgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIGRhdGEgdG8gZ2VuZXJhdGUuXHJcblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc2FtcGxlIGRhdGEuXHJcblx0ICovXHJcblx0cHVibGljIGFycihhcnJMZW4gPSAxMCwgdHlwZTogc3RyaW5nID0gJ251bWJlcicpOiBhbnlbXSB7XHJcblx0XHRjb25zdCBhcnIgPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyTGVuOyBpKyspIHtcclxuXHRcdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdFx0Y2FzZSAnbnVtYmVyJzpcclxuXHRcdFx0XHRcdGFyci5wdXNoKGkgKyAxKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgJ3RleHQnOlxyXG5cdFx0XHRcdFx0YXJyLnB1c2godGhpcy50ZXh0KCkpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSAnZGF0ZSc6XHJcblx0XHRcdFx0XHRhcnIucHVzaChuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGkgKiA4NjQwMDAwMCkpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdGFyci5wdXNoKHR5cGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYXJyO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2VuZXJhdGVzIGEgcmFuZG9tIHRleHQgc3RyaW5nLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGxlbmd0aCAtIFRoZSBsZW5ndGggb2YgdGhlIHRleHQgc3RyaW5nLlxyXG5cdCAqIEByZXR1cm5zIEEgcmFuZG9tIHRleHQgc3RyaW5nLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0ZXh0KGxlbmd0aCA9IDEwKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xyXG5cdFx0bGV0IHJlc3VsdCA9ICcnO1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG5cdFx0XHRyZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVycy5sZW5ndGgpKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
84
84
  provideHttpClient(withInterceptorsFromDi())
85
85
  ] }]
86
86
  }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fjb20ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvd2Fjb20vc3JjL2xpYi93YWNvbS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxZQUFZLEVBQVUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc3RSxXQUFXO0FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFVekQsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUF2QnBFLE1BQU0sVUFBVSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVMzQyxNQUFNLEtBQUssR0FBRztJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFVBQVU7SUFDVixhQUFhO0lBQ2IsY0FBYztDQUNkLENBQUM7QUFRRixNQUFNLGdCQUFnQixHQUFHO0lBQ3hCLGdCQUFnQjtJQUNoQixjQUFjO0NBQ2QsQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztDQUNkLENBQUM7QUFTRixNQUFNLE9BQU8sV0FBVztJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLGNBQWM7UUFDN0MsT0FBTztZQUNOLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRSxDQUFDO29CQUNYLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsTUFBTTtpQkFDaEIsQ0FBQztTQUNGLENBQUE7SUFDRixDQUFDO3VHQVRXLFdBQVc7d0dBQVgsV0FBVyxpQkFoQnZCLGdCQUFnQjtZQUNoQixjQUFjLEVBaEJkLE9BQU87WUFDUCxRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7WUFDVixhQUFhO1lBQ2IsY0FBYyxFQWNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsY0FBYyxFQS9CSyxxQkFBcUIsYUFtQ3dCLFlBQVksRUFBRSxXQUFXLGFBekJ6RixPQUFPO1lBQ1AsUUFBUTtZQUNSLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtZQUNiLGNBQWMsRUFjZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGNBQWMsRUEvQksscUJBQXFCO3dHQXlDNUIsV0FBVyxhQU5nRjtZQUNoRyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRTtZQUNuRCxTQUFTO1lBQ1QsV0FBVztZQUNYLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDOUMsWUFMNEQsWUFBWSxFQUFFLFdBQVc7OzJGQU03RSxXQUFXO2tCQVB2QixRQUFRO21CQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQztvQkFDbkYsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFO3dCQUNoRyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRTt3QkFDbkQsU0FBUzt3QkFDVCxXQUFXO3dCQUNYLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7cUJBQzlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpbml0aWFsaXplICovXHJcbmltcG9ydCB7IENPTkZJR19UT0tFTiwgQ29uZmlnLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWV0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21ldGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1ldGFHdWFyZCB9IGZyb20gJy4vZ3VhcmQvbWV0YS5ndWFyZCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyogZGlyZWN0aXZlcyAqL1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5jb25zdCBESVJFQ1RJVkVTID0gW0NsaWNrT3V0c2lkZURpcmVjdGl2ZV07XHJcblxyXG4vKiBwaXBlcyAqL1xyXG5pbXBvcnQgeyBBcnJQaXBlIH0gZnJvbSAnLi9waXBlcy9hcnIucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLnBpcGUnO1xyXG5pbXBvcnQgeyBTcGxpY2VQaXBlIH0gZnJvbSAnLi9waXBlcy9zcGxpY2UucGlwZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBpcGUgfSBmcm9tICcuL3BpcGVzL3NlYXJjaC5waXBlJztcclxuaW1wb3J0IHsgTW9uZ29kYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbW9uZ29kYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvcGFnaW5hdGlvbi5waXBlJztcclxuY29uc3QgUElQRVMgPSBbXHJcblx0QXJyUGlwZSxcclxuXHRTYWZlUGlwZSxcclxuXHRTcGxpY2VQaXBlLFxyXG5cdFNlYXJjaFBpcGUsXHJcblx0TW9uZ29kYXRlUGlwZSxcclxuXHRQYWdpbmF0aW9uUGlwZSxcclxuXTtcclxuXHJcbi8qIGNvbXBvbmVudHMgKi9cclxuaW1wb3J0IHsgV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC93cmFwcGVyL3dyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZXMvZmlsZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcclxuY29uc3QgTE9DQUxfQ09NUE9ORU5UUyA9IFtcclxuXHRXcmFwcGVyQ29tcG9uZW50LFxyXG5cdEZpbGVzQ29tcG9uZW50XHJcbl07XHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcblx0TG9hZGVyQ29tcG9uZW50LFxyXG5cdE1vZGFsQ29tcG9uZW50LFxyXG5cdEFsZXJ0Q29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoeyBkZWNsYXJhdGlvbnM6IFsuLi5MT0NBTF9DT01QT05FTlRTLCAuLi5QSVBFUywgLi4uQ09NUE9ORU5UUywgLi4uRElSRUNUSVZFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uUElQRVMsIC4uLkNPTVBPTkVOVFMsIC4uLkRJUkVDVElWRVNdLCBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogQ09ORklHX1RPS0VOLCB1c2VWYWx1ZTogREVGQVVMVF9DT05GSUcgfSxcclxuICAgICAgICBNZXRhR3VhcmQsXHJcbiAgICAgICAgTWV0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKVxyXG4gICAgXSB9KVxyXG5leHBvcnQgY2xhc3MgV2Fjb21Nb2R1bGUge1xyXG5cdHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ29uZmlnID0gREVGQVVMVF9DT05GSUcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdhY29tTW9kdWxlPiB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRuZ01vZHVsZTogV2Fjb21Nb2R1bGUsXHJcblx0XHRcdHByb3ZpZGVyczogW3tcclxuXHRcdFx0XHRwcm92aWRlOiBDT05GSUdfVE9LRU4sXHJcblx0XHRcdFx0dXNlVmFsdWU6IGNvbmZpZ1xyXG5cdFx0XHR9XVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fjb20ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvd2Fjb20vc3JjL2xpYi93YWNvbS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxZQUFZLEVBQVUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc3RSxXQUFXO0FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFVekQsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUF2QnBFLE1BQU0sVUFBVSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVMzQyxNQUFNLEtBQUssR0FBRztJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFVBQVU7SUFDVixhQUFhO0lBQ2IsY0FBYztDQUNkLENBQUM7QUFRRixNQUFNLGdCQUFnQixHQUFHO0lBQ3hCLGdCQUFnQjtJQUNoQixjQUFjO0NBQ2QsQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztDQUNkLENBQUM7QUFTRixNQUFNLE9BQU8sV0FBVztJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLGNBQWM7UUFDN0MsT0FBTztZQUNOLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRSxDQUFDO29CQUNYLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsTUFBTTtpQkFDaEIsQ0FBQztTQUNGLENBQUE7SUFDRixDQUFDO3VHQVRXLFdBQVc7d0dBQVgsV0FBVyxpQkFoQnZCLGdCQUFnQjtZQUNoQixjQUFjLEVBaEJkLE9BQU87WUFDUCxRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7WUFDVixhQUFhO1lBQ2IsY0FBYyxFQWNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsY0FBYyxFQS9CSyxxQkFBcUIsYUFtQ3dCLFlBQVksRUFBRSxXQUFXLGFBekJ6RixPQUFPO1lBQ1AsUUFBUTtZQUNSLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtZQUNiLGNBQWMsRUFjZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGNBQWMsRUEvQksscUJBQXFCO3dHQXlDNUIsV0FBVyxhQU5nRjtZQUNoRyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRTtZQUNuRCxTQUFTO1lBQ1QsV0FBVztZQUNYLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDOUMsWUFMNEQsWUFBWSxFQUFFLFdBQVc7OzJGQU03RSxXQUFXO2tCQVB2QixRQUFRO21CQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQztvQkFDbkYsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFO3dCQUNoRyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRTt3QkFDbkQsU0FBUzt3QkFDVCxXQUFXO3dCQUNYLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7cUJBQzlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpbml0aWFsaXplICovXHJcbmltcG9ydCB7IENPTkZJR19UT0tFTiwgQ29uZmlnLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWV0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21ldGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1ldGFHdWFyZCB9IGZyb20gJy4vZ3VhcmQvbWV0YS5ndWFyZCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyogZGlyZWN0aXZlcyAqL1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5jb25zdCBESVJFQ1RJVkVTID0gW0NsaWNrT3V0c2lkZURpcmVjdGl2ZV07XHJcblxyXG4vKiBwaXBlcyAqL1xyXG5pbXBvcnQgeyBBcnJQaXBlIH0gZnJvbSAnLi9waXBlcy9hcnIucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLnBpcGUnO1xyXG5pbXBvcnQgeyBTcGxpY2VQaXBlIH0gZnJvbSAnLi9waXBlcy9zcGxpY2UucGlwZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBpcGUgfSBmcm9tICcuL3BpcGVzL3NlYXJjaC5waXBlJztcclxuaW1wb3J0IHsgTW9uZ29kYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbW9uZ29kYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvcGFnaW5hdGlvbi5waXBlJztcclxuY29uc3QgUElQRVMgPSBbXHJcblx0QXJyUGlwZSxcclxuXHRTYWZlUGlwZSxcclxuXHRTcGxpY2VQaXBlLFxyXG5cdFNlYXJjaFBpcGUsXHJcblx0TW9uZ29kYXRlUGlwZSxcclxuXHRQYWdpbmF0aW9uUGlwZSxcclxuXTtcclxuXHJcbi8qIGNvbXBvbmVudHMgKi9cclxuaW1wb3J0IHsgV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC93cmFwcGVyL3dyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsZXMvZmlsZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcclxuY29uc3QgTE9DQUxfQ09NUE9ORU5UUyA9IFtcclxuXHRXcmFwcGVyQ29tcG9uZW50LFxyXG5cdEZpbGVzQ29tcG9uZW50XHJcbl07XHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcblx0TG9hZGVyQ29tcG9uZW50LFxyXG5cdE1vZGFsQ29tcG9uZW50LFxyXG5cdEFsZXJ0Q29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoeyBkZWNsYXJhdGlvbnM6IFsuLi5MT0NBTF9DT01QT05FTlRTLCAuLi5QSVBFUywgLi4uQ09NUE9ORU5UUywgLi4uRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogWy4uLlBJUEVTLCAuLi5DT01QT05FTlRTLCAuLi5ESVJFQ1RJVkVTXSwgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLCBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBDT05GSUdfVE9LRU4sIHVzZVZhbHVlOiBERUZBVUxUX0NPTkZJRyB9LFxuICAgICAgICBNZXRhR3VhcmQsXG4gICAgICAgIE1ldGFTZXJ2aWNlLFxuICAgICAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpXG4gICAgXSB9KVxyXG5leHBvcnQgY2xhc3MgV2Fjb21Nb2R1bGUge1xyXG5cdHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ29uZmlnID0gREVGQVVMVF9DT05GSUcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdhY29tTW9kdWxlPiB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRuZ01vZHVsZTogV2Fjb21Nb2R1bGUsXHJcblx0XHRcdHByb3ZpZGVyczogW3tcclxuXHRcdFx0XHRwcm92aWRlOiBDT05GSUdfVE9LRU4sXHJcblx0XHRcdFx0dXNlVmFsdWU6IGNvbmZpZ1xyXG5cdFx0XHR9XVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -589,18 +589,36 @@ class MetaGuard {
589
589
  if (meta.disableUpdate) {
590
590
  return;
591
591
  }
592
- this.metaService.setTitle(meta.title, meta.titleSuffix);
593
- this.metaService.setLink(meta.link);
594
- Object.keys(meta).forEach(prop => {
595
- if (prop === 'title' || prop === 'titleSuffix' || prop === 'link') {
592
+ if (meta.title) {
593
+ this.metaService.setTitle(meta.title, meta.titleSuffix);
594
+ }
595
+ if (Array.isArray(meta.links)) {
596
+ this.metaService.setLink(meta.links);
597
+ }
598
+ else if (typeof meta.links === 'string') {
599
+ this.metaService.setLink(meta.links.split(' '));
600
+ }
601
+ if (Array.isArray(this._meta.defaults?.links)) {
602
+ this.metaService.setLink(this._meta.defaults?.links);
603
+ }
604
+ else if (typeof this._meta.defaults?.links === 'string') {
605
+ this.metaService.setLink(this._meta.defaults?.links.split(' '));
606
+ }
607
+ Object.keys(meta).forEach((prop) => {
608
+ if (prop === 'title' ||
609
+ prop === 'titleSuffix' ||
610
+ prop === 'links') {
596
611
  return;
597
612
  }
598
- Object.keys(meta[prop]).forEach(key => {
613
+ Object.keys(meta[prop]).forEach((key) => {
599
614
  this.metaService.setTag(key, meta[prop][key], prop);
600
615
  });
601
616
  });
602
- Object.keys(this._meta.defaults).forEach(key => {
603
- if (key in meta || key === 'title' || key === 'titleSuffix' || key === 'link') {
617
+ Object.keys(this._meta.defaults).forEach((key) => {
618
+ if (key in meta ||
619
+ key === 'title' ||
620
+ key === 'titleSuffix' ||
621
+ key === 'links') {
604
622
  return;
605
623
  }
606
624
  this.metaService.setTag(key, this._meta.defaults[key]);
@@ -3692,6 +3710,8 @@ class UiService {
3692
3710
  core;
3693
3711
  variables = {};
3694
3712
  _forms = {};
3713
+ // global variable use for design purposes
3714
+ var = {};
3695
3715
  constructor(core) {
3696
3716
  this.core = core;
3697
3717
  const storedVariables = this.core.localStorage.getItem('css_variables');