@lenne.tech/ng-base 14.21.3 → 14.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/base-components/components/upload-image/upload-image.component.d.ts +2 -1
  2. package/esm2020/base-cms/base-cms-routing.module.mjs +5 -5
  3. package/esm2020/base-cms/base-cms.module.mjs +5 -5
  4. package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +4 -4
  5. package/esm2020/base-components/base-components.module.mjs +5 -5
  6. package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +4 -4
  7. package/esm2020/base-components/components/change-password/change-password.component.mjs +4 -4
  8. package/esm2020/base-components/components/checkbox/checkbox.component.mjs +4 -4
  9. package/esm2020/base-components/components/delete-account/delete-account.component.mjs +4 -4
  10. package/esm2020/base-components/components/fab-button/fab-button.component.mjs +4 -4
  11. package/esm2020/base-components/components/input/input.component.mjs +4 -4
  12. package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +4 -4
  13. package/esm2020/base-components/components/model-form/model-form.component.mjs +24 -19
  14. package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +5 -5
  15. package/esm2020/base-components/components/model-table/model-table.component.mjs +4 -4
  16. package/esm2020/base-components/components/refence-input/refence-input.component.mjs +4 -4
  17. package/esm2020/base-components/components/select/select.component.mjs +4 -4
  18. package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +4 -4
  19. package/esm2020/base-components/components/tags/tags.component.mjs +4 -4
  20. package/esm2020/base-components/components/textarea/textarea.component.mjs +4 -4
  21. package/esm2020/base-components/components/toast/toast.component.mjs +4 -4
  22. package/esm2020/base-components/components/upload-image/upload-image.component.mjs +19 -9
  23. package/esm2020/base-components/directives/back-button.directive.mjs +4 -4
  24. package/esm2020/base-components/directives/context-menu.directive.mjs +4 -4
  25. package/esm2020/base-components/directives/sort.directive.mjs +4 -4
  26. package/esm2020/base-components/directives/stop-propagation.directive.mjs +4 -4
  27. package/esm2020/base-components/pipes/ellipses.pipe.mjs +4 -4
  28. package/esm2020/base-prototype/base-prototype.module.mjs +5 -5
  29. package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +4 -4
  30. package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +4 -4
  31. package/esm2020/base-prototype/pages/login/login.component.mjs +5 -5
  32. package/esm2020/base-prototype/pages/profile/profile.component.mjs +4 -4
  33. package/esm2020/base-prototype/pages/register/register.component.mjs +4 -4
  34. package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +4 -4
  35. package/esm2020/shared/classes/graphql-meta.class.mjs +24 -1
  36. package/esm2020/shared/classes/helper.class.mjs +4 -4
  37. package/esm2020/shared/interfaces/cms-field-config.interface.mjs +1 -1
  38. package/esm2020/shared/services/auth.service.mjs +4 -4
  39. package/esm2020/shared/services/breadcrumb.service.mjs +4 -4
  40. package/esm2020/shared/services/cms.service.mjs +4 -4
  41. package/esm2020/shared/services/file.service.mjs +18 -22
  42. package/esm2020/shared/services/forms.service.mjs +4 -4
  43. package/esm2020/shared/services/graphql-meta.service.mjs +4 -4
  44. package/esm2020/shared/services/graphql-plus.service.mjs +4 -4
  45. package/esm2020/shared/services/graphql.service.mjs +89 -27
  46. package/esm2020/shared/services/image.service.mjs +4 -4
  47. package/esm2020/shared/services/loader.service.mjs +4 -4
  48. package/esm2020/shared/services/navigation.service.mjs +4 -4
  49. package/esm2020/shared/services/scroll.service.mjs +4 -4
  50. package/esm2020/shared/services/storage.service.mjs +4 -4
  51. package/esm2020/shared/services/toast.service.mjs +4 -4
  52. package/esm2020/shared/services/user.service.mjs +4 -4
  53. package/esm2020/shared/services/ws.service.mjs +4 -4
  54. package/esm2020/src/base.module.mjs +5 -5
  55. package/esm2020/src/directives/lazy-load.directive.mjs +4 -4
  56. package/esm2020/src/directives/match-height.directive.mjs +4 -4
  57. package/esm2020/src/directives/resizable.directive.mjs +4 -4
  58. package/esm2020/src/factories/apollo-options.factory.mjs +3 -1
  59. package/esm2020/src/functions/extract-files.function.mjs +84 -0
  60. package/esm2020/src/guards/auth.guard.mjs +4 -4
  61. package/esm2020/src/guards/can-deactivate.guard.mjs +4 -4
  62. package/esm2020/src/guards/logout.guard.mjs +4 -4
  63. package/esm2020/src/pipes/date-ago.pipe.mjs +4 -4
  64. package/esm2020/src/pipes/safe-html.pipe.mjs +4 -4
  65. package/esm2020/src/services/fullscreen.service.mjs +4 -4
  66. package/esm2020/src/services/seo.service.mjs +4 -4
  67. package/esm2020/src/services/theme.service.mjs +4 -4
  68. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +11 -11
  69. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  70. package/fesm2015/lenne.tech-ng-base-base-components.mjs +112 -97
  71. package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
  72. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +23 -23
  73. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  74. package/fesm2015/lenne.tech-ng-base-shared.mjs +161 -82
  75. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
  76. package/fesm2015/lenne.tech-ng-base.mjs +122 -37
  77. package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
  78. package/fesm2020/lenne.tech-ng-base-base-cms.mjs +11 -11
  79. package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  80. package/fesm2020/lenne.tech-ng-base-base-components.mjs +106 -91
  81. package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
  82. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +23 -23
  83. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  84. package/fesm2020/lenne.tech-ng-base-shared.mjs +172 -92
  85. package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
  86. package/fesm2020/lenne.tech-ng-base.mjs +122 -37
  87. package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
  88. package/package.json +4 -4
  89. package/shared/classes/graphql-meta.class.d.ts +8 -0
  90. package/shared/classes/helper.class.d.ts +2 -2
  91. package/shared/interfaces/cms-field-config.interface.d.ts +1 -0
  92. package/shared/services/graphql.service.d.ts +14 -1
  93. package/src/functions/extract-files.function.d.ts +15 -0
@@ -171,11 +171,11 @@ class Helper {
171
171
  return Object.freeze(object);
172
172
  }
173
173
  /**
174
- * Generates an unique identifier with 24 characters
174
+ * Generates an unique identifier with a specific length
175
175
  */
176
- static getUID() {
176
+ static getUID(length = 24) {
177
177
  let dt = new Date().getTime();
178
- const uuid = 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
178
+ const uuid = 'x'.repeat(length).replace(/[xy]/g, (c) => {
179
179
  // eslint-disable-next-line no-bitwise
180
180
  const r = (dt + Math.random() * 16) % 16 | 0;
181
181
  dt = Math.floor(dt / 16);
@@ -450,6 +450,29 @@ class GraphQLMeta {
450
450
  throw Error('Missing schema');
451
451
  }
452
452
  }
453
+ /**
454
+ * Get an object with GraphQLRequestType (operation type) as keys and method (fields) names as value
455
+ */
456
+ getMethodNames() {
457
+ return {
458
+ query: Object.keys(this.schema.getQueryType()?.getFields() || {}),
459
+ mutation: Object.keys(this.schema.getMutationType()?.getFields() || {}),
460
+ subscription: Object.keys(this.schema.getSubscriptionType()?.getFields() || {}),
461
+ };
462
+ }
463
+ /**
464
+ * Get GraphQLRequestTypes (operation types) via method (field) name
465
+ */
466
+ getRequestTypesViaMethod(methodName) {
467
+ const result = [];
468
+ const methodNames = this.getMethodNames();
469
+ for (const [key, value] of Object.entries(methodNames)) {
470
+ if (value.includes(methodName)) {
471
+ result.push(key);
472
+ }
473
+ }
474
+ return result;
475
+ }
453
476
  /**
454
477
  * We're going to get the query and mutation types from the schema, then we're going to loop through the fields of each
455
478
  * type and check if the field name starts with `find`, `create`, `update`, or `delete`. If it does, we're going to add
@@ -944,9 +967,9 @@ class StorageService {
944
967
  this.storage.clear();
945
968
  }
946
969
  }
947
- StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StorageService, deps: [{ token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
948
- StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StorageService, providedIn: 'root' });
949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StorageService, decorators: [{
970
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, deps: [{ token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
971
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, providedIn: 'root' });
972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, decorators: [{
950
973
  type: Injectable,
951
974
  args: [{
952
975
  providedIn: 'root',
@@ -961,9 +984,9 @@ class WsService {
961
984
  this.client?.restart();
962
985
  }
963
986
  }
964
- WsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
965
- WsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WsService, providedIn: 'root' });
966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WsService, decorators: [{
987
+ WsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
988
+ WsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WsService, providedIn: 'root' });
989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WsService, decorators: [{
967
990
  type: Injectable,
968
991
  args: [{
969
992
  providedIn: 'root',
@@ -1029,9 +1052,9 @@ class AuthService {
1029
1052
  return this._token.asObservable();
1030
1053
  }
1031
1054
  }
1032
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AuthService, deps: [{ token: BASE_MODULE_CONFIG }, { token: StorageService }, { token: WsService }], target: i0.ɵɵFactoryTarget.Injectable });
1033
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AuthService, providedIn: 'root' });
1034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AuthService, decorators: [{
1055
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthService, deps: [{ token: BASE_MODULE_CONFIG }, { token: StorageService }, { token: WsService }], target: i0.ɵɵFactoryTarget.Injectable });
1056
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthService, providedIn: 'root' });
1057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthService, decorators: [{
1035
1058
  type: Injectable,
1036
1059
  args: [{
1037
1060
  providedIn: 'root',
@@ -1156,9 +1179,9 @@ class GraphQLMetaService {
1156
1179
  return observable;
1157
1180
  }
1158
1181
  }
1159
- GraphQLMetaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLMetaService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
1160
- GraphQLMetaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLMetaService, providedIn: 'root' });
1161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLMetaService, decorators: [{
1182
+ GraphQLMetaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLMetaService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
1183
+ GraphQLMetaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLMetaService, providedIn: 'root' });
1184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLMetaService, decorators: [{
1162
1185
  type: Injectable,
1163
1186
  args: [{
1164
1187
  providedIn: 'root',
@@ -1179,10 +1202,10 @@ class GraphQLService {
1179
1202
  /**
1180
1203
  * GraphQL request
1181
1204
  */
1182
- graphQl(graphql, options = {}) {
1183
- // Check arguments
1184
- if (!graphql) {
1185
- throwError('Missing graphql argument');
1205
+ graphQl(graphqlMethodName, options = {}) {
1206
+ // Check parameters
1207
+ if (!graphqlMethodName) {
1208
+ throwError(() => new Error('Missing graphql method name'));
1186
1209
  }
1187
1210
  // Get config
1188
1211
  const config = {
@@ -1190,7 +1213,6 @@ class GraphQLService {
1190
1213
  fields: null,
1191
1214
  log: false,
1192
1215
  model: null,
1193
- type: GraphQLRequestType.QUERY,
1194
1216
  ...options,
1195
1217
  };
1196
1218
  // Convert class to Object for arguments
@@ -1209,6 +1231,21 @@ class GraphQLService {
1209
1231
  return new Observable((subscriber) => {
1210
1232
  // Get meta
1211
1233
  this.graphQLMetaService.getMeta({ log: config.log }).subscribe((meta) => {
1234
+ // Set GraphQLRequestType automatically
1235
+ if (!config.type) {
1236
+ const types = meta.getRequestTypesViaMethod(graphqlMethodName);
1237
+ if (!types?.length) {
1238
+ throwError(() => new Error('No GraphQLRequestType detected'));
1239
+ }
1240
+ config.type = types[0];
1241
+ if (config.type) {
1242
+ throwError(() => new Error('No GraphQLRequestType detected'));
1243
+ }
1244
+ if (types.length > 1) {
1245
+ // eslint-disable-next-line no-console
1246
+ console.debug('GraphQLRequestType ' + config.type + ' used for ' + graphqlMethodName, types);
1247
+ }
1248
+ }
1212
1249
  // Prepare fields
1213
1250
  let fields;
1214
1251
  let allowedFields;
@@ -1217,7 +1254,7 @@ class GraphQLService {
1217
1254
  console.log({ meta });
1218
1255
  }
1219
1256
  if (config.fields) {
1220
- allowedFields = meta.getFields(graphql, { type: config.type });
1257
+ allowedFields = meta.getFields(graphqlMethodName, { type: config.type });
1221
1258
  // Log meta
1222
1259
  if (config.log) {
1223
1260
  console.log({ allowedFields });
@@ -1235,7 +1272,7 @@ class GraphQLService {
1235
1272
  console.log({ fields });
1236
1273
  }
1237
1274
  // Get allowed args
1238
- const allowedArgs = meta.getArgs(graphql, { type: config.type });
1275
+ const allowedArgs = meta.getArgs(graphqlMethodName, { type: config.type });
1239
1276
  // Log allowed args
1240
1277
  if (config.log) {
1241
1278
  console.log({ allowedArgs });
@@ -1259,17 +1296,43 @@ class GraphQLService {
1259
1296
  }
1260
1297
  // Log
1261
1298
  if (config.log) {
1262
- console.log({ graphQL: graphql, args, fields, type: config.type });
1299
+ console.log({ graphQL: graphqlMethodName, args, fields, type: config.type });
1263
1300
  }
1264
1301
  // Prepare request
1265
- const documentNode = fields
1266
- ? gql(config.type + '{\n' + graphql + args + fields + '\n}')
1267
- : gql(config.type + '{\n' + graphql + args + '\n}');
1302
+ const request = {};
1303
+ // Prepare GraphQL
1304
+ const gQlFuncBody = fields
1305
+ ? ' {\n' + graphqlMethodName + args + fields + '\n}'
1306
+ : ' {\n' + graphqlMethodName + args + '\n}';
1307
+ let gQlBody = config.type + gQlFuncBody;
1308
+ // Handling for variables (e.g. for file uploads)
1309
+ if (Object.keys(argsData.variables).length) {
1310
+ // Preparations
1311
+ request.variables = {};
1312
+ let multipart = false;
1313
+ // Add surrounding
1314
+ gQlBody = config.type + ' Request(';
1315
+ for (const [key, item] of Object.entries(argsData.variables)) {
1316
+ gQlBody += '\n$' + key + ':' + item.type + ',';
1317
+ request.variables[key] = item.value;
1318
+ if (item.type.startsWith('Upload')) {
1319
+ multipart = true;
1320
+ }
1321
+ }
1322
+ gQlBody = gQlBody.slice(0, -1) + '\n)' + gQlFuncBody;
1323
+ // Set Multipart
1324
+ if (multipart) {
1325
+ request.context = {
1326
+ useMultipart: true,
1327
+ };
1328
+ }
1329
+ }
1330
+ const documentNode = gql(gQlBody);
1268
1331
  // Log
1269
1332
  if (config.log) {
1270
1333
  console.log({ documentNode });
1271
1334
  }
1272
- const request = {};
1335
+ // Set document node
1273
1336
  request[config.type] = documentNode;
1274
1337
  // Log
1275
1338
  if (config.log) {
@@ -1289,7 +1352,7 @@ class GraphQLService {
1289
1352
  request[config.type] = documentNode;
1290
1353
  }
1291
1354
  this.apollo[func](request).subscribe((result) => {
1292
- const data = result?.data?.[graphql] !== undefined ? result.data[graphql] : result;
1355
+ const data = result?.data?.[graphqlMethodName] !== undefined ? result.data[graphqlMethodName] : result;
1293
1356
  // Direct data
1294
1357
  if (!config.model) {
1295
1358
  subscriber.next(data);
@@ -1341,17 +1404,19 @@ class GraphQLService {
1341
1404
  */
1342
1405
  prepareArguments(args, options = {}) {
1343
1406
  // Init config variables
1344
- const { allowed, level, parent, schemaArgs, usedArgs } = {
1407
+ const { allowed, levelKey, level, parent, schemaArgs, usedArgs, variables } = {
1345
1408
  allowed: null,
1409
+ levelKey: '',
1346
1410
  level: 1,
1347
1411
  parent: '',
1348
1412
  schemaArgs: [],
1349
1413
  usedArgs: [],
1414
+ variables: {},
1350
1415
  ...options,
1351
1416
  };
1352
1417
  // Check args
1353
1418
  if (args === undefined || args === null) {
1354
- return { argsString: '', schemaArgs, usedArgs };
1419
+ return { argsString: '', schemaArgs, usedArgs, variables };
1355
1420
  }
1356
1421
  // Init args
1357
1422
  const result = [];
@@ -1369,29 +1434,37 @@ class GraphQLService {
1369
1434
  // Process value
1370
1435
  result.push(this.prepareArguments(item, {
1371
1436
  allowed: key ? allowed.fields[key] : null,
1437
+ levelKey: key,
1372
1438
  level: level + 1,
1373
1439
  parent: parent + key + '.',
1374
1440
  schemaArgs,
1375
1441
  usedArgs,
1442
+ variables,
1376
1443
  }).argsString);
1377
1444
  }
1378
1445
  // Encapsulation of the array result
1379
1446
  if (result.length) {
1380
1447
  // Complete result, encapsulated via round brackets
1381
1448
  if (level === 1) {
1382
- return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };
1449
+ return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs, variables };
1383
1450
  }
1384
1451
  // Deeper result part, encapsulated via square brackets
1385
1452
  else {
1386
- return { argsString: '[' + result.join(', ') + ']', schemaArgs, usedArgs };
1453
+ return { argsString: '[' + result.join(', ') + ']', schemaArgs, usedArgs, variables };
1387
1454
  }
1388
1455
  }
1389
1456
  }
1390
1457
  // Process object
1391
1458
  else if (typeof args === 'object') {
1459
+ // Check for Upload type for variable handling
1460
+ if (allowed?.type === 'Upload') {
1461
+ const name = levelKey + '_' + Helper.getUID(6);
1462
+ variables[name] = { type: allowed.type + (allowed.isRequired ? '!' : ''), value: args };
1463
+ return { argsString: '$' + name, schemaArgs, usedArgs, variables };
1464
+ }
1392
1465
  // Check object is empty
1393
1466
  if (args && Object.keys(args).length === 0 && Object.getPrototypeOf(args) === Object.prototype) {
1394
- return { argsString: '{}', schemaArgs, usedArgs };
1467
+ return { argsString: '{}', schemaArgs, usedArgs, variables };
1395
1468
  }
1396
1469
  // Process all object entries
1397
1470
  for (const [key, value] of Object.entries(args)) {
@@ -1429,10 +1502,12 @@ class GraphQLService {
1429
1502
  ': [' +
1430
1503
  value.map((item) => this.prepareArguments(item, {
1431
1504
  allowed: allowed.fields[key],
1505
+ levelKey: key,
1432
1506
  level: level + 1,
1433
1507
  parent: currentKey + '.',
1434
1508
  schemaArgs,
1435
1509
  usedArgs,
1510
+ variables,
1436
1511
  }).argsString) +
1437
1512
  ']');
1438
1513
  continue;
@@ -1460,13 +1535,22 @@ class GraphQLService {
1460
1535
  }
1461
1536
  // Others
1462
1537
  else {
1463
- additionalResult += this.prepareArguments(value, {
1538
+ const prepareOptions = {
1464
1539
  allowed: allowed.fields[key],
1540
+ levelKey: key,
1465
1541
  level: level + 1,
1466
1542
  parent: currentKey + '.',
1467
1543
  schemaArgs,
1468
1544
  usedArgs,
1469
- }).argsString;
1545
+ variables,
1546
+ };
1547
+ try {
1548
+ additionalResult += this.prepareArguments(value, prepareOptions).argsString;
1549
+ }
1550
+ catch (e) {
1551
+ console.error('Error during preparing arguments', value, prepareOptions);
1552
+ throw e;
1553
+ }
1470
1554
  }
1471
1555
  // Push deeper part into result array
1472
1556
  result.push(additionalResult);
@@ -1475,17 +1559,17 @@ class GraphQLService {
1475
1559
  if (result.length) {
1476
1560
  // Complete result, encapsulated via round brackets
1477
1561
  if (level === 1) {
1478
- return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs };
1562
+ return { argsString: '(' + result.join(', ') + ')', schemaArgs, usedArgs, variables };
1479
1563
  }
1480
1564
  // Deeper result part, encapsulated via curly brackets
1481
1565
  else {
1482
- return { argsString: '{' + result.join(', ') + '}', schemaArgs, usedArgs };
1566
+ return { argsString: '{' + result.join(', ') + '}', schemaArgs, usedArgs, variables };
1483
1567
  }
1484
1568
  }
1485
1569
  }
1486
1570
  // Prepare and process other / unknown values as JSON
1487
1571
  else {
1488
- return { argsString: JSON.stringify(args), schemaArgs, usedArgs };
1572
+ return { argsString: JSON.stringify(args), schemaArgs, usedArgs, variables };
1489
1573
  }
1490
1574
  }
1491
1575
  /**
@@ -1587,9 +1671,9 @@ class GraphQLService {
1587
1671
  return { fieldsString, schemaFields, usedFields };
1588
1672
  }
1589
1673
  }
1590
- GraphQLService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }], target: i0.ɵɵFactoryTarget.Injectable });
1591
- GraphQLService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLService, providedIn: 'root' });
1592
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLService, decorators: [{
1674
+ GraphQLService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }], target: i0.ɵɵFactoryTarget.Injectable });
1675
+ GraphQLService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, providedIn: 'root' });
1676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, decorators: [{
1593
1677
  type: Injectable,
1594
1678
  args: [{
1595
1679
  providedIn: 'root',
@@ -1663,9 +1747,9 @@ class LoaderService {
1663
1747
  });
1664
1748
  }
1665
1749
  }
1666
- LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1667
- LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoaderService, providedIn: 'root' });
1668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoaderService, decorators: [{
1750
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1751
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, providedIn: 'root' });
1752
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, decorators: [{
1669
1753
  type: Injectable,
1670
1754
  args: [{
1671
1755
  providedIn: 'root',
@@ -1739,9 +1823,9 @@ class GraphQLPlusService extends GraphQLService {
1739
1823
  console.error(error);
1740
1824
  }
1741
1825
  }
1742
- GraphQLPlusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLPlusService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }, { token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
1743
- GraphQLPlusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLPlusService, providedIn: 'root' });
1744
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: GraphQLPlusService, decorators: [{
1826
+ GraphQLPlusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLPlusService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }, { token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
1827
+ GraphQLPlusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLPlusService, providedIn: 'root' });
1828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLPlusService, decorators: [{
1745
1829
  type: Injectable,
1746
1830
  args: [{
1747
1831
  providedIn: 'root',
@@ -1838,9 +1922,9 @@ class ImageService {
1838
1922
  });
1839
1923
  }
1840
1924
  }
1841
- ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1842
- ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ImageService, providedIn: 'root' });
1843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ImageService, decorators: [{
1925
+ ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1926
+ ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, providedIn: 'root' });
1927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, decorators: [{
1844
1928
  type: Injectable,
1845
1929
  args: [{
1846
1930
  providedIn: 'root',
@@ -2009,9 +2093,9 @@ class ScrollService {
2009
2093
  return this.scrollPromise;
2010
2094
  }
2011
2095
  }
2012
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ScrollService, deps: [{ token: i1$1.Router }, { token: BASE_MODULE_CONFIG }, { token: ImageService }], target: i0.ɵɵFactoryTarget.Injectable });
2013
- ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ScrollService, providedIn: 'root' });
2014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ScrollService, decorators: [{
2096
+ ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, deps: [{ token: i1$1.Router }, { token: BASE_MODULE_CONFIG }, { token: ImageService }], target: i0.ɵɵFactoryTarget.Injectable });
2097
+ ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, providedIn: 'root' });
2098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, decorators: [{
2015
2099
  type: Injectable,
2016
2100
  args: [{
2017
2101
  providedIn: 'root',
@@ -2063,9 +2147,9 @@ class FormsService {
2063
2147
  this.scrollService.scrollTo(invalidForm);
2064
2148
  }
2065
2149
  }
2066
- FormsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormsService, deps: [{ token: DOCUMENT }, { token: ScrollService }], target: i0.ɵɵFactoryTarget.Injectable });
2067
- FormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormsService, providedIn: 'root' });
2068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormsService, decorators: [{
2150
+ FormsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormsService, deps: [{ token: DOCUMENT }, { token: ScrollService }], target: i0.ɵɵFactoryTarget.Injectable });
2151
+ FormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormsService, providedIn: 'root' });
2152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormsService, decorators: [{
2069
2153
  type: Injectable,
2070
2154
  args: [{
2071
2155
  providedIn: 'root',
@@ -2203,9 +2287,9 @@ class UserService extends GraphQLPlusService {
2203
2287
  });
2204
2288
  }
2205
2289
  }
2206
- UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }, { token: LoaderService }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
2207
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserService, providedIn: 'root' });
2208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserService, decorators: [{
2290
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: GraphQLMetaService }, { token: LoaderService }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
2291
+ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, providedIn: 'root' });
2292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, decorators: [{
2209
2293
  type: Injectable,
2210
2294
  args: [{
2211
2295
  providedIn: 'root',
@@ -2241,9 +2325,9 @@ class ToastService {
2241
2325
  }
2242
2326
  }
2243
2327
  }
2244
- ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2245
- ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastService, providedIn: 'root' });
2246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastService, decorators: [{
2328
+ ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2329
+ ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, providedIn: 'root' });
2330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, decorators: [{
2247
2331
  type: Injectable,
2248
2332
  args: [{
2249
2333
  providedIn: 'root',
@@ -2304,9 +2388,9 @@ class BreadcrumbService {
2304
2388
  return typeof data.breadcrumb === 'function' ? data.breadcrumb(data) : data.breadcrumb;
2305
2389
  }
2306
2390
  }
2307
- BreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2308
- BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
2309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BreadcrumbService, decorators: [{
2391
+ BreadcrumbService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2392
+ BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
2393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BreadcrumbService, decorators: [{
2310
2394
  type: Injectable,
2311
2395
  args: [{
2312
2396
  providedIn: 'root',
@@ -2337,9 +2421,9 @@ class NavigationService {
2337
2421
  }
2338
2422
  }
2339
2423
  }
2340
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: NavigationService, deps: [{ token: i1$1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable });
2341
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: NavigationService, providedIn: 'root' });
2342
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: NavigationService, decorators: [{
2424
+ NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, deps: [{ token: i1$1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable });
2425
+ NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, providedIn: 'root' });
2426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, decorators: [{
2343
2427
  type: Injectable,
2344
2428
  args: [{ providedIn: 'root' }]
2345
2429
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2.Location }]; } });
@@ -2412,9 +2496,9 @@ class CmsService {
2412
2496
  return value.charAt(0).toLowerCase() + value.slice(1);
2413
2497
  }
2414
2498
  }
2415
- CmsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, deps: [{ token: GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
2416
- CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, providedIn: 'root' });
2417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, decorators: [{
2499
+ CmsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CmsService, deps: [{ token: GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
2500
+ CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CmsService, providedIn: 'root' });
2501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CmsService, decorators: [{
2418
2502
  type: Injectable,
2419
2503
  args: [{
2420
2504
  providedIn: 'root',
@@ -2431,29 +2515,25 @@ class FileService {
2431
2515
  */
2432
2516
  compress(file, options) {
2433
2517
  const config = {
2434
- ...{
2435
- quality: 0.6,
2436
- checkOrientation: false,
2437
- },
2518
+ quality: 0.6,
2519
+ checkOrientation: false,
2438
2520
  ...options,
2439
2521
  };
2440
2522
  return new Promise((resolve, reject) => {
2441
2523
  new Compressor(file, {
2442
- ...config,
2443
- ...{
2444
- success(result) {
2445
- // Check if result is blob for convert to file
2446
- if (result instanceof Blob) {
2447
- resolve(new File([result], result.name));
2448
- }
2449
- else {
2450
- resolve(result);
2451
- }
2452
- },
2453
- error(err) {
2454
- reject(err.message);
2455
- },
2524
+ success(result) {
2525
+ // Check if result is blob for convert to file
2526
+ if (result instanceof Blob) {
2527
+ resolve(new File([result], result.name));
2528
+ }
2529
+ else {
2530
+ resolve(result);
2531
+ }
2456
2532
  },
2533
+ error(err) {
2534
+ reject(err.message);
2535
+ },
2536
+ ...config,
2457
2537
  });
2458
2538
  });
2459
2539
  }
@@ -2494,9 +2574,9 @@ class FileService {
2494
2574
  });
2495
2575
  }
2496
2576
  }
2497
- FileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FileService, deps: [{ token: AuthService }, { token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2498
- FileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FileService, providedIn: 'root' });
2499
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FileService, decorators: [{
2577
+ FileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FileService, deps: [{ token: AuthService }, { token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2578
+ FileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FileService, providedIn: 'root' });
2579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FileService, decorators: [{
2500
2580
  type: Injectable,
2501
2581
  args: [{
2502
2582
  providedIn: 'root',