@lenne.tech/ng-base 14.21.2 → 14.21.4

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 (101) hide show
  1. package/base-components/components/checkbox/checkbox.component.d.ts +2 -1
  2. package/base-components/components/input/input.component.d.ts +2 -1
  3. package/base-components/components/model-form/model-form.component.d.ts +4 -1
  4. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +4 -1
  5. package/base-components/components/refence-input/refence-input.component.d.ts +2 -1
  6. package/base-components/components/select/select.component.d.ts +2 -1
  7. package/base-components/components/tags/tags.component.d.ts +2 -1
  8. package/base-components/components/textarea/textarea.component.d.ts +2 -1
  9. package/base-components/components/upload-image/upload-image.component.d.ts +3 -1
  10. package/esm2020/base-cms/base-cms-routing.module.mjs +4 -4
  11. package/esm2020/base-cms/base-cms.module.mjs +4 -4
  12. package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +3 -3
  13. package/esm2020/base-components/base-components.module.mjs +4 -4
  14. package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +3 -3
  15. package/esm2020/base-components/components/change-password/change-password.component.mjs +3 -3
  16. package/esm2020/base-components/components/checkbox/checkbox.component.mjs +8 -5
  17. package/esm2020/base-components/components/delete-account/delete-account.component.mjs +3 -3
  18. package/esm2020/base-components/components/fab-button/fab-button.component.mjs +3 -3
  19. package/esm2020/base-components/components/input/input.component.mjs +8 -5
  20. package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +3 -3
  21. package/esm2020/base-components/components/model-form/model-form.component.mjs +58 -29
  22. package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +15 -5
  23. package/esm2020/base-components/components/model-table/model-table.component.mjs +3 -3
  24. package/esm2020/base-components/components/refence-input/refence-input.component.mjs +8 -5
  25. package/esm2020/base-components/components/select/select.component.mjs +8 -5
  26. package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +3 -3
  27. package/esm2020/base-components/components/tags/tags.component.mjs +8 -5
  28. package/esm2020/base-components/components/textarea/textarea.component.mjs +8 -5
  29. package/esm2020/base-components/components/toast/toast.component.mjs +3 -3
  30. package/esm2020/base-components/components/upload-image/upload-image.component.mjs +30 -10
  31. package/esm2020/base-components/directives/back-button.directive.mjs +3 -3
  32. package/esm2020/base-components/directives/context-menu.directive.mjs +3 -3
  33. package/esm2020/base-components/directives/sort.directive.mjs +4 -4
  34. package/esm2020/base-components/directives/stop-propagation.directive.mjs +3 -3
  35. package/esm2020/base-components/pipes/ellipses.pipe.mjs +3 -3
  36. package/esm2020/base-prototype/base-prototype.module.mjs +4 -4
  37. package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +3 -3
  38. package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +3 -3
  39. package/esm2020/base-prototype/pages/login/login.component.mjs +5 -5
  40. package/esm2020/base-prototype/pages/profile/profile.component.mjs +3 -3
  41. package/esm2020/base-prototype/pages/register/register.component.mjs +3 -3
  42. package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +3 -3
  43. package/esm2020/shared/classes/graphql-meta.class.mjs +24 -1
  44. package/esm2020/shared/classes/helper.class.mjs +4 -4
  45. package/esm2020/shared/interfaces/cms-field-config.interface.mjs +1 -1
  46. package/esm2020/shared/services/auth.service.mjs +3 -3
  47. package/esm2020/shared/services/breadcrumb.service.mjs +3 -3
  48. package/esm2020/shared/services/cms.service.mjs +3 -3
  49. package/esm2020/shared/services/file.service.mjs +18 -22
  50. package/esm2020/shared/services/forms.service.mjs +10 -7
  51. package/esm2020/shared/services/graphql-meta.service.mjs +3 -3
  52. package/esm2020/shared/services/graphql-plus.service.mjs +3 -3
  53. package/esm2020/shared/services/graphql.service.mjs +89 -27
  54. package/esm2020/shared/services/image.service.mjs +3 -3
  55. package/esm2020/shared/services/loader.service.mjs +3 -3
  56. package/esm2020/shared/services/navigation.service.mjs +3 -3
  57. package/esm2020/shared/services/scroll.service.mjs +3 -3
  58. package/esm2020/shared/services/storage.service.mjs +3 -3
  59. package/esm2020/shared/services/toast.service.mjs +3 -3
  60. package/esm2020/shared/services/user.service.mjs +3 -3
  61. package/esm2020/shared/services/ws.service.mjs +3 -3
  62. package/esm2020/src/base.module.mjs +4 -4
  63. package/esm2020/src/directives/lazy-load.directive.mjs +3 -3
  64. package/esm2020/src/directives/match-height.directive.mjs +3 -3
  65. package/esm2020/src/directives/resizable.directive.mjs +3 -3
  66. package/esm2020/src/factories/apollo-options.factory.mjs +3 -1
  67. package/esm2020/src/functions/extract-files.function.mjs +84 -0
  68. package/esm2020/src/guards/auth.guard.mjs +3 -3
  69. package/esm2020/src/guards/can-deactivate.guard.mjs +3 -3
  70. package/esm2020/src/guards/logout.guard.mjs +3 -3
  71. package/esm2020/src/pipes/date-ago.pipe.mjs +3 -3
  72. package/esm2020/src/pipes/safe-html.pipe.mjs +3 -3
  73. package/esm2020/src/services/fullscreen.service.mjs +3 -3
  74. package/esm2020/src/services/seo.service.mjs +3 -3
  75. package/esm2020/src/services/theme.service.mjs +3 -3
  76. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +11 -11
  77. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  78. package/fesm2015/lenne.tech-ng-base-base-components.mjs +192 -114
  79. package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
  80. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +23 -23
  81. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  82. package/fesm2015/lenne.tech-ng-base-shared.mjs +167 -85
  83. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
  84. package/fesm2015/lenne.tech-ng-base.mjs +122 -37
  85. package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
  86. package/fesm2020/lenne.tech-ng-base-base-cms.mjs +11 -11
  87. package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  88. package/fesm2020/lenne.tech-ng-base-base-components.mjs +185 -108
  89. package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
  90. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +23 -23
  91. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  92. package/fesm2020/lenne.tech-ng-base-shared.mjs +178 -95
  93. package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
  94. package/fesm2020/lenne.tech-ng-base.mjs +122 -37
  95. package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
  96. package/package.json +4 -4
  97. package/shared/classes/graphql-meta.class.d.ts +8 -0
  98. package/shared/classes/helper.class.d.ts +2 -2
  99. package/shared/interfaces/cms-field-config.interface.d.ts +1 -0
  100. package/shared/services/graphql.service.d.ts +14 -1
  101. 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.9", 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.9", ngImport: i0, type: StorageService, providedIn: 'root' });
972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", ngImport: i0, type: WsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
988
+ WsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: WsService, providedIn: 'root' });
989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", 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.9", ngImport: i0, type: AuthService, providedIn: 'root' });
1057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", ngImport: i0, type: GraphQLMetaService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
1183
+ GraphQLMetaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: GraphQLMetaService, providedIn: 'root' });
1184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", 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.9", ngImport: i0, type: GraphQLService, providedIn: 'root' });
1676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1751
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: LoaderService, providedIn: 'root' });
1752
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", 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.9", ngImport: i0, type: GraphQLPlusService, providedIn: 'root' });
1828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1926
+ ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ImageService, providedIn: 'root' });
1927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", 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.9", 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.9", ngImport: i0, type: ScrollService, providedIn: 'root' });
2098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ScrollService, decorators: [{
2015
2099
  type: Injectable,
2016
2100
  args: [{
2017
2101
  providedIn: 'root',
@@ -2040,16 +2124,19 @@ class FormsService {
2040
2124
  findInvalidControls(formGroup) {
2041
2125
  return this.getInvalidControl(formGroup);
2042
2126
  }
2043
- getInvalidControl(formGroup, invalid) {
2127
+ getInvalidControl(formGroup, invalid, parents = []) {
2044
2128
  let result = invalid ? [...invalid] : [];
2129
+ let nestedParents = [...[], ...parents];
2045
2130
  const controls = formGroup.controls;
2046
2131
  Object.keys(formGroup.controls).forEach((name) => {
2047
2132
  if (controls[name].invalid) {
2048
2133
  if (controls[name]?.controls) {
2049
- result = this.getInvalidControl(controls[name], result);
2134
+ nestedParents.push(name);
2135
+ result = this.getInvalidControl(controls[name], result, nestedParents);
2136
+ nestedParents = [];
2050
2137
  }
2051
2138
  else {
2052
- result.push(name);
2139
+ result.push(nestedParents.length ? nestedParents.join('.') + '.' + name : name);
2053
2140
  }
2054
2141
  }
2055
2142
  });
@@ -2060,9 +2147,9 @@ class FormsService {
2060
2147
  this.scrollService.scrollTo(invalidForm);
2061
2148
  }
2062
2149
  }
2063
- 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 });
2064
- FormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormsService, providedIn: 'root' });
2065
- 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.9", 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.9", ngImport: i0, type: FormsService, providedIn: 'root' });
2152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormsService, decorators: [{
2066
2153
  type: Injectable,
2067
2154
  args: [{
2068
2155
  providedIn: 'root',
@@ -2200,9 +2287,9 @@ class UserService extends GraphQLPlusService {
2200
2287
  });
2201
2288
  }
2202
2289
  }
2203
- 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 });
2204
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UserService, providedIn: 'root' });
2205
- 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.9", 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.9", ngImport: i0, type: UserService, providedIn: 'root' });
2292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: UserService, decorators: [{
2206
2293
  type: Injectable,
2207
2294
  args: [{
2208
2295
  providedIn: 'root',
@@ -2238,9 +2325,9 @@ class ToastService {
2238
2325
  }
2239
2326
  }
2240
2327
  }
2241
- ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2242
- ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastService, providedIn: 'root' });
2243
- 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.9", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2329
+ ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ToastService, providedIn: 'root' });
2330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ToastService, decorators: [{
2244
2331
  type: Injectable,
2245
2332
  args: [{
2246
2333
  providedIn: 'root',
@@ -2301,9 +2388,9 @@ class BreadcrumbService {
2301
2388
  return typeof data.breadcrumb === 'function' ? data.breadcrumb(data) : data.breadcrumb;
2302
2389
  }
2303
2390
  }
2304
- 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 });
2305
- BreadcrumbService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
2306
- 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.9", 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.9", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
2393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: BreadcrumbService, decorators: [{
2307
2394
  type: Injectable,
2308
2395
  args: [{
2309
2396
  providedIn: 'root',
@@ -2334,9 +2421,9 @@ class NavigationService {
2334
2421
  }
2335
2422
  }
2336
2423
  }
2337
- 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 });
2338
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: NavigationService, providedIn: 'root' });
2339
- 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.9", 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.9", ngImport: i0, type: NavigationService, providedIn: 'root' });
2426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NavigationService, decorators: [{
2340
2427
  type: Injectable,
2341
2428
  args: [{ providedIn: 'root' }]
2342
2429
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2.Location }]; } });
@@ -2409,9 +2496,9 @@ class CmsService {
2409
2496
  return value.charAt(0).toLowerCase() + value.slice(1);
2410
2497
  }
2411
2498
  }
2412
- CmsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, deps: [{ token: GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
2413
- CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, providedIn: 'root' });
2414
- 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.9", ngImport: i0, type: CmsService, deps: [{ token: GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
2500
+ CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: CmsService, providedIn: 'root' });
2501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: CmsService, decorators: [{
2415
2502
  type: Injectable,
2416
2503
  args: [{
2417
2504
  providedIn: 'root',
@@ -2428,29 +2515,25 @@ class FileService {
2428
2515
  */
2429
2516
  compress(file, options) {
2430
2517
  const config = {
2431
- ...{
2432
- quality: 0.6,
2433
- checkOrientation: false,
2434
- },
2518
+ quality: 0.6,
2519
+ checkOrientation: false,
2435
2520
  ...options,
2436
2521
  };
2437
2522
  return new Promise((resolve, reject) => {
2438
2523
  new Compressor(file, {
2439
- ...config,
2440
- ...{
2441
- success(result) {
2442
- // Check if result is blob for convert to file
2443
- if (result instanceof Blob) {
2444
- resolve(new File([result], result.name));
2445
- }
2446
- else {
2447
- resolve(result);
2448
- }
2449
- },
2450
- error(err) {
2451
- reject(err.message);
2452
- },
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
+ }
2453
2532
  },
2533
+ error(err) {
2534
+ reject(err.message);
2535
+ },
2536
+ ...config,
2454
2537
  });
2455
2538
  });
2456
2539
  }
@@ -2491,9 +2574,9 @@ class FileService {
2491
2574
  });
2492
2575
  }
2493
2576
  }
2494
- 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 });
2495
- FileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FileService, providedIn: 'root' });
2496
- 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.9", 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.9", ngImport: i0, type: FileService, providedIn: 'root' });
2579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FileService, decorators: [{
2497
2580
  type: Injectable,
2498
2581
  args: [{
2499
2582
  providedIn: 'root',